как получить ключ значения, что в массиве массива? - PullRequest
2 голосов
/ 06 января 2012

Я не могу с этим справиться. Пожалуйста, помогите мне. Это массив:

$arr = array("data" => array(
                    array("id" => "5451"),
                    array("id" => "45346346")
                    ));

например, как мне найти ключ для идентификатора 45346346?

$key = array_search($arr['data'], 45346346);

Я пробовал это, но оно не работает.

Я пытаюсь удалить эту строку массива. Я думаю, я могу сделать это с помощью unset ($ key)

1 Ответ

1 голос
/ 06 января 2012

У вас есть массив массивов массивов. $arr['data'] - массив с 2 значениями. Эти значения являются массивами. array_search не работает, так как 45346346 не соответствует массиву.

Вы бы приготовили свой собственный поиск, что-то вроде этого:

function find_in_array($arr, $val){
   $found = false;
   foreach($arr as $k=>$x){
      if(array_search($val, $x) !== FALSE){
         $found = $k;
         break;
      }
   }
   return $found;
}

Тогда вы можете сделать: $key = find_in_array($arr['data'], 45346346);. Это вернет 1, индекс массива, содержащего 'id' => 45346346 внутри $arr['data'].

ДЕМО: http://codepad.org/pSxaBT9g

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...