Найти ключ массива совпадающих значений
Я пытаюсь получить ключ массива соответствующих значений. Это выглядит так:
$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));