<?php
//多维数组中,根据传入的ID,获取该ID的所有子多维数组
//$list 传入的数组
//$str ID
//如果把返回值不放在函数外部,就会得到null
//只要匹配到一次,那就直接数组复制,把子结点也复制进来了,赋给返回值,就是你要的无限层级查找结果
$_result = array();
function getArr($_list, $str){
global $_result; //引入外部定义的变量
if(is_array($_list)){
for($_i=0; $_i<sizeof($_list); $_i++) {
if ($_list[$_i]["id"] == $str) {
$_result = $_list[$_i];
echo "找到了节点";
break;
} else {
//不匹配, 继续查找是否有子结点
if (isset($_list[$_i]['children']) && is_array($_list[$_i]['children'])) {
getArr($_list[$_i]["children"], $str); //有子结点, 递归调用
}
}
}
}
}
//执行循环
getArr($_arr, "12104");
var_dump($_result);
?>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号