6 php arrays multidimensional-array
我有大的多维数组.我必须从中找到特定的子阵列.
我尝试使用一个递归函数,但它实际上没有返回值.谁能给我另一个解决方案.
这是数组的预览.
Array
(
[0] => Array
(
[expanded] => 1
[key] => _1
[title] => New
)
[1] => Array
(
[key] => _2
[title] => Home
)
[2] => Array
(
[expanded] => 1
[key] => _3
[title] => Care
[children] => Array
(
[0] => Array
(
[expanded] => 1
[key] => _4
[title] => face
[children] => Array
(
[0] => Array
(
[key] => _5
[title] => new
)
[1] => Array
(
[key] => _6
[title] => <strong>face timeline</strong>
[data] => Array
(
[url] => http://localhost/patient/face-timeline/
[type] => content
[cid] => 2291
[timeline] => 0
)
[children] => Array
(
[0] => Array
(
[key] => _2278
[title] => Post Op Visit
)
[1] => Array
(
[key] => _2277
[title] => Surgery
)
[2] => Array
(
[key] => _2276
[title] => Pre-Op
)
[3] => Array
(
[key] => _2275
[title] => Consultation
)
[4] => Array
(
[key] => _2274
[title] => Reseach
)
)
)
)
)
)
)
)
Run Code Online (Sandbox Code Playgroud)
从那个数组我想要这个数组(如下):
Array
(
[key] => _6
[title] => <strong>face timeline</strong>
[data] => Array
(
[url] => http://localhost/patient/face-timeline/
[type] => content
[cid] => 2291
[timeline] => 0
)
[children] => Array
(
[0] => Array
(
[key] => _2278
[title] => Post Op Visit
)
[1] => Array
(
[key] => _2277
[title] => Surgery
)
[2] => Array
(
[key] => _2276
[title] => Pre-Op
)
[3] => Array
(
[key] => _2275
[title] => Consultation
)
[4] => Array
(
[key] => _2274
[title] => Reseach
)
)
)
Run Code Online (Sandbox Code Playgroud)
这是我试过的
function recursion($array,$postid) {
foreach ($array as $key=>$value) {
if((isset($value['data']['cid'])) && ($value['data']['cid'] == $postid)){
$tmp = $value;
return $value;
}
if (is_array($value))
{
recursion($value,$postid);
}
}
}
Run Code Online (Sandbox Code Playgroud)
此函数不返回值.
这$postid是2291.这是我正在搜索,我能够打印该数组,但无法返回值这是链接
如果您只想获取特定值,请使用以下命令:
function recursive($your_array)
{
$newArray = [];
foreach ($your_array as $key => $val) {
if (array_keys($your_array) == 'children') {
foreach($val as $key2 => $val3){
$newArray[] = recursive($val3);
}
}
}
print_r($newArray);
}
Run Code Online (Sandbox Code Playgroud)