匹配多维数组中的值

时间:2014-04-25 08:20:08

标签: php

我想在数组中搜索一个键中的一个值,并从同一个数组中的另一个键返回内容。 像这样:

 $cars = array
  (
  array("brand" => "Volvo","color" => 22),
  array("brand" => "BMW","color" => 15),
  array("brand" => "Saab","color" => 5),
  array("brand" => "Land Rover","color" => 17)
  );

// Not working, just to clarify my intention
if($cars['brand'] == 'BMW') {echo $cars['color'];}

在这个例子中,应该回应15。 如何实现这一目标?

3 个答案:

答案 0 :(得分:1)

这应该这样做:

foreach($cars as $car) {
    if($car['brand'] == 'BMW') {
        echo $car['color'];
    }
}

答案 1 :(得分:1)

您需要创建一个遍历每个可能值的循环。通常,您只需使用for循环。

for($i = 0; $i < count($cars); $i++) {
    if($cars[$i]['brand'] == "BMW")
        echo $cars[$i]['color'];
}

但是,使用foreach循环也是一种选择,它看起来更整洁。

foreach($cars as $v) {
    if($v['brand'] == "BMW")
        echo $v['color'];
}

有关更多信息,请参阅数组,for循环和foreach循环文档

答案 2 :(得分:0)

您可以在PHP中使用array_filter函数。请参阅PHP文档和给定示例中的this page