PHP在多维数组中搜索项



我目前有一个这样设置的数组:

$u_id= array(
    array(
        NUM=>'2770', DESC=>'description one'
    ), 
    array(
        NUM=>'33356', DESC=>'description two'
    ), 
    array(
        NUM=>'13576', DESC=>'description three'
    ),
    array(
        NUM=>'14141', DESC=>'description four'
    )
);

我需要能够通过这个数组传递一个数字作为$num(对应于数组中的NUM=>"),并将相应的DESC=>"存储为字符串。例如,搜索"2770"将返回"description one"。

做这件事最好的方法是什么?

您是否受限于此数组结构?因为更有效的结构是只进行

$u_id= array(
     '2770' => 'description one',
     '33356' => 'description two',
     '13576' => 'description three',
     '14141' => 'description four'
);

也就是说,你只假设键是数字,值是描述,而不是明确地命名它们。那么,找到正确描述的代码就是$u_id[2770](或任意一个)。

如果这是不可接受的,你也可以做

$u_id= array(
    '2770' => array(
        NUM=>'2770', DESC=>'description one'
    ), 
    '33356' => array(
        NUM=>'33356', DESC=>'description two'
    ), 
    '13576' => array(
        NUM=>'13576', DESC=>'description three'
    ),
    '14141' => array(
        NUM=>'14141', DESC=>'description four'
    )
);

也就是说,数字也被用作找到正确配对的密钥。查找正确描述的代码变为$u_id[2770]["NUM"]

在这两种情况中,从数字中找到给定的描述都是一个步骤。但是,如果不能更改数组结构,则必须循环遍历数组进行检查(这可能需要与数组中的项一样多的步骤)。

foreach($arrays as $arr){
  if($arr['NUM']==$num){
    return $arr['DESC'];
  }
}

相关内容

  • 没有找到相关文章

最新更新