查看上面的代码......
$Array = array(array("name"=>"Mickey","type"=>"mouse"),array("name"=>"Donald","type"=>"duck"),array("name"=>"Little Helper","type"=>"eniac"));
$search = "Donald";
foreach($Array as $Item){
if($Item["name"]==$search) $MyItem = $Item;
}
echo('The item named "'.$search.'" is '.$MyItem["type"]);
...我觉得有一个数组函数或更好的方法来查找二维数组中的项目。这些数组就像一个表。也许将键设置为索引唯一值(在本例中为名称),但我不知道如何操作。
答案 0 :(得分:2)
在PHP 5.5中使用新的array_column()函数
$Array = array(array("name"=>"Mickey","type"=>"mouse"),array("name"=>"Donald","type"=>"duck"),array("name"=>"Little Helper","type"=>"eniac"));
$search = "Donald";
$key = array_search(
$search,
array_column($Array,'name')
);
if($key !== false) {
$MyItem = $Array[$key];
echo('The item named "'.$search.'" is '.$MyItem["type"]);
}
答案 1 :(得分:1)
如果您可以将数组重新组合为:
array("Mickey"=>"mouse","Donald"=>"duck","Little Helper"=>"eniac");
或
array("Mickey"=>array("name"=>"mouse"),"Donald"=>array("name"=>"duck"),"Little Helper"=>array("name"=>"eniac"));
然后按键返回
答案 2 :(得分:0)
适用于此案例:
echo array_column($Array, 'type', 'name')[$search];
或者使用支票:
$names = array_column($Array, 'type', 'name');
echo isset($names[$search]) ? $names[$search] : 'not found';
转换为name
=> type
使用:
$Array = array_column($Array, 'type', 'name');
然后,您可以使用$Array[$search]
。