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