当前位置: 编程技术>php
本页文章导读:
▪php 二维数组转树状数组的实例代码 以下代码,将二维数组转换为树形数组:
<?php
/**
* @param array $list 要转换的结果集
* @param string $pid parent标记字段
* @param string $level level标记字段
*/
function list_to_tree($list, $pk='id', $pid = 'pi.........
▪php 非递归树形数组构造函数 非递归树形数组构造函数,代码:
<?php
/**
*创建父节点树形数组
* 参数 $ar 数组,邻接列表方式组织的数据
* $id 数组中作为主键的下标或关联键名
* $pid 数组中作为父键的下标或关联.........
▪php下载css中图片的实例代码 在网上碰到一个不错的模板,要做的就是下载它的css文件,不过这其中会有很多图片链接,当然,我们也要下载下来。
图片太多的话,手动下载不方便,这里用php来实现下载css中的图片。
有.........
[1]php 二维数组转树状数组的实例代码
来源: 互联网 发布时间: 2013-12-24
以下代码,将二维数组转换为树形数组:
<?php
/**
* @param array $list 要转换的结果集
* @param string $pid parent标记字段
* @param string $level level标记字段
*/
function list_to_tree($list, $pk='id', $pid = 'pid', $child = 'listArea', $root = 0) {
//创建Tree
$tree = array();
if (is_array($list)) {
//创建基于主键的数组引用
$refer = array();
foreach ($list as $key => $data) {
$refer[$data[$pk]] = &$list[$key];
}
foreach ($list as $key => $data) {
//判断是否存在parent
$parantId = $data[$pid];
if ($root == $parantId) {
$tree[] = &$list[$key];
} else {
if (isset($refer[$parantId])) {
$parent = &$refer[$parantId];
$parent[$child][] = &$list[$key];
}
}
}
}
return $tree;
}
$arr = array(
array('id'=>1,'pid'=>0,'name' => urlencode('大连'), 'code' => 'dd', 'listArea' => array()),
array('id'=>2,'pid'=>1,'name' => urlencode('香港'), 'code' => 'dd', 'listArea' => array()),
array('id'=>4,'pid'=>3,'name' => 'm', 'code' => 'dd', 'listArea' => array()),
array('id'=>2,'pid'=>1,'name' => 'gg', 'code' => 'aa', 'listArea' => array()),
array('id'=>3,'pid'=>1,'name' => 'e', 'code' => 'dd', 'listArea' => array())
);
//$array = array(array('id'=>0,'pid'=>0,'name' => '全国'));
//$array2 = array_merge($array, $arr);
//array_push($arr, $array);
//print_r($array);exit;
$tree = list_to_tree($arr);
echo json_encode($tree);
//整理:www.
?>
注意:此方法不显示无子节点的对象,这点请注意下。
[2]php 非递归树形数组构造函数
来源: 互联网 发布时间: 2013-12-24
非递归树形数组构造函数,代码:
<?php
/**
*创建父节点树形数组
* 参数 $ar 数组,邻接列表方式组织的数据
* $id 数组中作为主键的下标或关联键名
* $pid 数组中作为父键的下标或关联键名
* 返回 多维数组
* by www.
**/
function find_parent($ar, $id = 'id', $pid = 'pid') {
foreach ( $ar as $v )
$t [$v [$id]] = $v;
foreach ( $t as $k => $item ) {
if ($item [$pid]) {
if (! isset ( $t [$item [$pid]] ['parent'] [$item [$pid]] ))
$t [$item [$id]] ['parent'] [$item [$pid]] = & $t [$item [$pid]];
}
}
return $t;
}
/**
* * 创建子节点树形数组 * 参数 *
* $ar 数组,邻接列表方式组织的数据
* $id 数组中作为主键的下标或关联键名
* $pid
* 数组中作为父键的下标或关联键名 * 返回 多维数组 *
*/
function find_child($ar, $id = 'id', $pid = 'pid') {
foreach ( $ar as $v )
$t [$v [$id]] = $v;
foreach ( $t as $k => $item ) {
if ($item [$pid]) {
$t [$item [$pid]] ['child'] [$item [$id]] = & $t [$k];
}
}
return $t;
}
$data = array (
array (
'ID' => 1,
'PARENT' => 0,
'NAME' => '祖父'
),
array (
'ID' => 2,
'PARENT' => 1,
'NAME' => '父亲'
),
array (
'ID' => 3,
'PARENT' => 1,
'NAME' => '叔伯'
),
array (
'ID' => 4,
'PARENT' => 2,
'NAME' => '自己'
),
array (
'ID' => 5,
'PARENT' => 4,
'NAME' => '儿子'
)
);
$p = find_parent ( $data, 'ID', 'PARENT' );
$c = find_child ( $data, 'ID', 'PARENT' );
print_r($c);
exit;
?>
[3]php下载css中图片的实例代码
来源: 互联网 发布时间: 2013-12-24
在网上碰到一个不错的模板,要做的就是下载它的css文件,不过这其中会有很多图片链接,当然,我们也要下载下来。
图片太多的话,手动下载不方便,这里用php来实现下载css中的图片。
有需要的朋友,拿去咯:
<?php
/*
* 下载css样式文件中的图片
* edit by www.
*/
//note 设置PHP超时时间
set_time_limit(0);
//note 取得样式文件内容
$styleFileContent = file_get_contents('images/style.css');
//note 匹配出需要下载的URL地址
preg_match_all("/url\((.*)\)/", $styleFileContent, $imagesURLArray);
//note 循环需要下载的地址,逐个下载
$imagesURLArray = array_unique($imagesURLArray[1]);
foreach($imagesURLArray as $imagesURL) {
file_put_contents(basename($imagesURL), file_get_contents($imagesURL));
}?>最新技术文章: