当前位置:  编程技术>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));
}?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

▪php文件下载(防止中文文件名乱码)的示例代码 iis7站长之家