Я хотел бы получить / найти ключ массива по некоторым значениям массива.
Я старался 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
)
)
$newArr = array();
foreach ($yourArr as $arr)
{
if($arr['personal_code']==12345678910)
{
$newArr []=$arr;
}
}
print_r($newArr);
Вы можете просто использовать простой 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);