【发布时间】:2014-07-01 16:15:16
【问题描述】:
我有一个这样的多维数组:
Array
(
[0] => Array
(
[id] => 14061
[subchannel] => Array
(
[0] => Array
(
[id] => 14144
[subchannel] => Array
(
[0] => Array
(
[id] => 14154
[subchannel] => Array
(
)
[name] => 14154name
)
[1] => Array
(
[id] => 14155
[subchannel] => Array
(
)
[name] => 14155name
)
[2] => Array
(
[id] => 14156
[subchannel] => Array
(
)
[name] => 14156name
)
)
[name] => 14144name
)
[1] => Array
(
[id] => 14145
[subchannel] => Array
(
[0] => Array
(
[id] => 14161
[subchannel] => Array
(
)
[name] => 14161name
)
[1] => Array
(
[id] => 14162
[subchannel] => Array
(
)
[name] => 14162name
)
[2] => Array
(
[id] => 14163
[subchannel] => Array
(
)
[name] => 14163name
)
)
[name] => 14145name
)
[2] => Array
(
[id] => 14146
[subchannel] => Array
(
[0] => Array
(
[id] => 14167
[subchannel] => Array
(
)
[name] => 14167name
)
[1] => Array
(
[id] => 14168
[subchannel] => Array
(
)
[name] => 14168name
)
[2] => Array
(
[id] => 14169
[subchannel] => Array
(
)
[name] => 14169name
)
)
[name] => 14146name
)
)
[name] => 14061name
)
[1] => Array
(
[id] => 14062
[subchannel] => Array
(
)
[name] => 14062name
)
[2] => Array
(
[id] => 14063
[subchannel] => Array
(
)
[name] => 14063name
)
)
我想把上面的多维数组改成父子关系数组包含这个(pid表示parentid):
[id=>14061,pid=>0,name=>14061name]
[id=>14062,pid=>0,name=>14062name]
[id=>14063,pid=>0,name=>14063name]
[id=>14144,pid=>14061,name=>14144name]
[id=>14145,pid=>14061,name=>14145name]
[id=>14146,pid=>14061,name=>14146name]
[id=>14154,pid=>14144,name=>14154name]
[id=>14155,pid=>14144,name=>14155name]
[id=>14156,pid=>14144,name=>14156name]
[id=>14161,pid=>14145,name=>14161name]
[id=>14162,pid=>14145,name=>14162name]
[id=>14163,pid=>14145,name=>14163name]
[id=>14167,pid=>14146,name=>14167name]
[id=>14168,pid=>14146,name=>14168name]
[id=>14169,pid=>14146,name=>14169name]
我使用了一个函数,但只是获取 $this->data 中的 id:
function arr_foreach ($arr)
{
if (!is_array ($arr))
{
return false;
}
foreach ($arr as $key => $val )
{
if (is_array ($val))
{
$this->arr_foreach ($val);
}
else
{
if($key == "id"){
$this->data[] = $val;
}
}
}
}
任何人都可以编写一个 php 代码来执行此操作吗?
【问题讨论】:
-
想想 PHP 有多流行,我相信很多人都可以——但这不是重点。你需要帮助自己做这件事吗?那么至少请尝试一下!
-
我是php新手,试了快半天了。请帮忙。非常感谢。
-
这很可能可以通过一些有趣的递归函数来完成。
标签: php arrays parent-child relationship