查找key的值,其中另一个键的值等于匹配值(关联数组)

时间:2012-01-12 14:14:14

标签: php arrays multidimensional-array associative-array

例如,我有一个数组:

array(
    array(
        ['make']=>ford
        ['color']=>blue
        ['type']=>automatic
    ),
    array(
        ['make']=>chevrolet
        ['color']=>red
        ['type']=>manual
)

当我必须继续使用另一个键的值时,是否可以在PHP中找到已知键的值?

比方说,我的值为“蓝色”,我知道它在“颜色”键中,我现在能从这些信息中找到“汽车”的价值吗?

已知密钥的已知值是唯一的。 (在此示例中,不能有两个“蓝色”值

我希望这是有道理的,并提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

$knownColor = 'blue';
$knownKey = 'color';
$desiredKey = 'make';

foreach ($outerArray as $inner) {
  if ($inner[$knownKey] == $knownColor) {
    $result = $inner[$desiredKey];
    // or to get the whole inner array:
    // $result = $inner;
    break;
  }
}

var_dump($result);

答案 1 :(得分:1)

假设您的数组已分配给$cars,它将会是这样的:

$knownColor = 'blue';
$knownKey = 'color';
...
foreach ($cars as $car) {
    if ($car[$knownKey] === $knownColor) {
        return $car;
    }
}