Найти ключ массива совпадающих значений

Я пытаюсь получить ключ массива соответствующих значений. Это выглядит так:

$someId = 2

$array[0][id]   = "1";
$array[0][firstname]  = "dude1";

$array[1][id]   = "2";
$array[1][firstname]  = "dude2";

$array[2][id]   = "3";
$array[2][firstname]  = "dude3";

Как получить ключ массива, например, "1" ($array[1]), сопоставив переменную "$someId = 2" с уникальными идентификаторами ( $array[1][id]) в массиве?

В основном: $someId === $array[x][id] > возвращает массив $ array [x], где он совпадает.

2 ответа

Решение

Просто foreach сделаю это:

$someId = 2;

foreach($array as $person)
{
    if($person['id'] == $someId)
    {
        // found a match, do something with $person
        // ...
        break; // remove the break if you want to continue searching after a match
    }
}

Если вы хотите ключ, то измените на

foreach($array as $key => $person)

array_filter() сохраняет ассоциативность

$result = array_filter(
    $array,
    function ($item) use ($personId) {
        return ($item['id'] == $personId);
    }
);

var_dump(array_keys($result));
Другие вопросы по тегам