博客列表 >在多维数组中,搜索子多维数组

在多维数组中,搜索子多维数组

GTOFFICE的博客
GTOFFICE的博客原创
2017年10月29日 10:07:35871浏览
<?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);
?>


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议