我有一个这样子的要求
我有这样子的哈希,保存着这样子的数据
class01-->0
class02-->0
class03-->class02
class04-->calss03
class05-->class04
class06-->class03key和value表示他们的集成关系,比如class03-->class02 表示class03 继承 class02;
我想输出成这样子
class01
class02
class03==>class02
class04==>calss03==>class02
class05==>class04==>class03==>class02
class06==>class03==>class02这样子就可以一目了然,看清楚所有类了。
请问怎么做啊。需要用到递归不。
或者不用递归,怎么实现啊急求明白帝。
在这里谢过了。100分聊表心意。
我有这样子的哈希,保存着这样子的数据
class01-->0
class02-->0
class03-->class02
class04-->calss03
class05-->class04
class06-->class03key和value表示他们的集成关系,比如class03-->class02 表示class03 继承 class02;
我想输出成这样子
class01
class02
class03==>class02
class04==>calss03==>class02
class05==>class04==>class03==>class02
class06==>class03==>class02这样子就可以一目了然,看清楚所有类了。
请问怎么做啊。需要用到递归不。
或者不用递归,怎么实现啊急求明白帝。
在这里谢过了。100分聊表心意。
$ar = array(
array( 'id' => 1, 'pid' => 0, 'name' => 'class01' ),
array( 'id' => 2, 'pid' => 0, 'name' => 'class02' ),
array( 'id' => 3, 'pid' => 2, 'name' => 'class03' ),
array( 'id' => 4, 'pid' => 3, 'name' => 'class04' ),
array( 'id' => 5, 'pid' => 4, 'name' => 'class05' ),
array( 'id' => 6, 'pid' => 3, 'name' => 'class06' ),
);
$t = find_parent($ar);foreach($t as $v) {
echo $v['name'];
while($v['parent']) {
$v = array_pop($v['parent']);
echo " ==> $v[name]";
}
echo '<br>';
}class01
class02
class03 ==> class02
class04 ==> class03 ==> class02
class05 ==> class04 ==> class03 ==> class02
class06 ==> class03 ==> class02函数 find_parent 的定义在 http://topic.csdn.net/u/20110728/15/eadffb68-5eb6-40d8-9ec1-2bc439f45322.html
'class04' => 'class03', 'class05' => 'class04', 'class06' => 'class03');
$result = array();function foo($i, $k) {
global $ar, $result;
if (array_key_exists($k, $ar) && $ar[$k] !== 0) {
$result[$i] .= '==>'.$ar[$k];
foo($i, $ar[$k]);
}
else {
$result[$i] .= '';
}
}foreach($ar as $k => $v) foo($k, $k);foreach($result as $k => $v) echo $k.$v."<br />";/*
class01
class02
class03==>class02
class04==>class03==>class02
class05==>class04==>class03==>class02
class06==>class03==>class02
*/