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 \”将返回\“描述一\”。 这样做的最佳方法是什么?     

解决方法

        
foreach($arrays as $arr){
  if($arr[\'NUM\']==$num){
    return $arr[\'DESC\'];
  }
}
    ,        您是否受限于此数组结构?因为要做一个更有效的结构
$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\"]
。 在这两种情况下,从数字中查找给定的描述都是一个步骤。但是,如果您无法更改数组结构,则必须遍历数组进行检查(这可能需要与数组中的项目一样多的步骤)。