Найти значение ключа, где значение другого ключа равно совпадающему значению (ассоциативный массив) - PullRequest
2 голосов
/ 12 января 2012

Например, у меня есть массив:

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

Можно ли найти в PHP значение известного ключа, когда все, что мне нужно, это значение другого ключа?

Скажем, например, у меня есть значение "синий", и я знаю, что оно находится в клавише "цвет", могу ли я теперь найти значение "автомобиль" из этой информации?

Известное значение известного ключа является уникальным. (в этом примере не может быть двух значений «синий»)

Надеюсь, это имеет смысл, и заранее спасибо за вашу помощь.

Ответы [ 2 ]

3 голосов
/ 12 января 2012
$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 голос
/ 12 января 2012

Если ваш массив назначен $cars, он будет выглядеть примерно так:

$knownColor = 'blue';
$knownKey = 'color';
...
foreach ($cars as $car) {
    if ($car[$knownKey] === $knownColor) {
        return $car;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...