加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php,长而深的矩阵

发布时间:2020-12-13 22:28:42 所属栏目:PHP教程 来源:网络整理
导读:我有一个深而长的数组(矩阵).我只知道产品ID. 如何找到产品的方式? 对一个数组进行采样(但正如我所说,它可以很长很深): Array( [apple] = Array( [new] = Array( [0] = Array([id] = 1) [1] = Array([id] = 2)) [old] = Array( [0] = Array([id] = 3) [1]
我有一个深而长的数组(矩阵).我只知道产品ID.
如何找到产品的方式?

对一个数组进行采样(但正如我所说,它可以很长很深):

Array(
        [apple] => Array(
                [new] => Array(
                        [0] => Array([id] => 1)
                        [1] => Array([id] => 2))
                [old] => Array(
                        [0] => Array([id] => 3)
                        [1] => Array([id] => 4))
            )
)

我有身份证:3,我希望得到这个:
苹果,老,0

谢谢

解决方法

你可以用这个宝贝:

function getById($id,$array,&$keys){
  foreach($array as $key => $value){
     if(is_array( $value )){
        $result = getById($id,$value,$keys);
        if($result == true){
          $keys[] = $key;
          return true;
        }
     }
     else if($key == 'id' && $value == $id){
       $keys[] = $key; // Optional,adds id to the result array
       return true;
     }
  }
  return false;
}
// USAGE:
$result_array = array();
getById( 3,$products,$result_array);
// RESULT (= $result_array)
Array
(
    [0] => id
    [1] => 0
    [2] => old
    [3] => apple
)

函数本身在成功时返回true,在错误时返回false,您想要的数据将存储在第3个参数中.

您可以使用array_reverse(),link来反转顺序和array_pop(),link,以删除最后一项(‘id’)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读