建立一个2维数组 array[id][child] 遍历一次原始数组就可以了
遇到两位的判断是否存在 不存在就插入 遇到不是两位的就认为是child放到该放的地方$a = array('4401','00','0001','0002','22','2201');
$b = array();
for($i = 0; $i < count($a); $i++)
{
if(strlen($a[$i]) == 2)
{
if(!array_key_exists($a[$i],$b))
{
$b[$a[$i]] = array();
}
}
else
{
$id = substr($a[$i], 0, 2);
if(isset($b[$id]))
{
if(!in_array($a[$i], $b[$id]))
{
$b[$id][] = $a[$i];
}
}
else
{
$b[$id] = array();
$b[$id][] = $a[$i];
}
}
}
print_r($b);
遇到两位的判断是否存在 不存在就插入 遇到不是两位的就认为是child放到该放的地方$a = array('4401','00','0001','0002','22','2201');
$b = array();
for($i = 0; $i < count($a); $i++)
{
if(strlen($a[$i]) == 2)
{
if(!array_key_exists($a[$i],$b))
{
$b[$a[$i]] = array();
}
}
else
{
$id = substr($a[$i], 0, 2);
if(isset($b[$id]))
{
if(!in_array($a[$i], $b[$id]))
{
$b[$id][] = $a[$i];
}
}
else
{
$b[$id] = array();
$b[$id][] = $a[$i];
}
}
}
print_r($b);
解决方案 »
- php rewrite设置
- PHP向MYSQL插入数据异常.
- 循环 排列问题?
- mysql某列的默认值为另一列,有办法么>
- 如何优化sql语句,使得占用系统资源更少
- 请教一个织梦的问题,列表页如何调用图集里具体大图的地址?
- 各位高手,帮忙想一下,我要用nginx伪静态,http://127.0.0.1/phurl/vP3g8 http://127.0.0.1/phurl?aid=
- 我的网站出炉了,哪位愿与我交换友情链接呀。
- 在asp可以用“../../”,php怎麼不可以用“../../”?
- Advantages of PHP Over Java
- 看书怎么收益大?代码看一行敲一行?还是盲敲?
- 请问php如何实现让图片直接显示?
//将无序的dep组合成为有序的树状结构
$step=2;
$start=1;
$res=array();
for($start=1;$start<5;$start++){
//大循环,即要处理的是第几级的数据
foreach($deps as $k => $v){
if(strlen($v['id'])==($start*$step)){
put_dep($res,$v);
unset($deps[$k]);
}
}
}
return $res;
}function put_dep(&$res,$v){
//将数组放入到$res中去
$i=strlen($v['id']);
if($i==2){
$res[]=$v;
}else{
//需要查找是在什么下面的
$prefix=substr($v['id'],0,$i-2);
foreach($res as $key=>&$value){
if($value['id']==$prefix){
$value['children'][]=$v; //children需在前面设置
return true;
}
}
}
}