Получить ключ массива по значению — многомерный массив

Я хотел бы получить / найти ключ массива по некоторым значениям массива.

Я старался array_search но это не поможет с многомерными массивами, как я надеялся.

Например, у меня есть такой массив, и мне нужно получить все ключи массива, где personal_code = 12345678910, В этом примере я должен получить array(0,1) потому что в первом и втором массиве есть персональный код 12345678910,

Как я могу получить эти ключи?

Array
(
[0] => Array
(
[id] => 32155
[personal_code] => 12345678910
[cadaster] => 12345:321:1234
[purpose] => Purpose 1
[address] => Blah blah 1
[area] => 600m2
)

[1] => Array
(
[id] => 14131
[personal_code] => 12345678910
[cadaster] => 12345:123:4321
[purpose] => Purpose 2
[address] => Blah blah 3
[area] => 1200m2
)

[2] => Array
(
[id] => 32303
[personal_code] => 54321678910
[cadaster] => 12345:123:1234
[purpose] => Purpose 3
[address] => Blah blah 2
[area] => 1800m2
)
)

1

Решение

$newArr = array();
foreach ($yourArr as $arr)
{
if($arr['personal_code']==12345678910)
{
$newArr []=$arr;
}
}
print_r($newArr);
1

Другие решения

Вы можете просто использовать простой foreach для получения этих ключей. Пример:

$find = '12345678910';
$keys = array();
foreach($your_array as $key => $values) { // loop your array
// now values will hold each array batch inside that parent array
if($values['personal_code'] == $find) { // so it if matches
$keys[] = $key; // then put it inside
}
}

echo '<pre>';
print_r($keys);

Образец Демо

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector