PHP: массив высокой глубины, как вернуть текущее имя ключа? - PullRequest
0 голосов
/ 13 января 2010

У меня есть огромный массив из результата json_decode (для ассоциации установлено значение true), и у меня есть следующий код, чтобы проверить, имеет ли (один из массивов внутри случайный последовательный код) ключ 'set_true'

$out = "";
foreach ($array as $sub) {
  //$out[] = $sub['set_true'];
  if (in_array($sub['set_true'], $sub) && $sub['set_true'] == '1' ) {
     $out[] = 'User: ' . $sub . ' has set_true = 1';
  }
}

В этом коде перечислены все пользователи с ключом массива, установленным в 1, но $ sub возвращает 'массив', а не текущий ключ, на котором я нахожусь! (случайный сериал)

Как мне его вернуть?

Ответы [ 3 ]

2 голосов
/ 13 января 2010

Если вы просматриваете массив с foreach и хотите узнать ключ, на котором вы в данный момент находитесь в цикле, вы можете использовать этот синтаксис:

foreach ($array as $key => $value) {
    // $key contains the name of the current key
    // and $value the current value
}
0 голосов
/ 13 января 2010

Я думаю, что вы имеете в виду:

$out = "";
foreach ($array as $key => $sub) {
  if (array_key_exists('set_true', $sub) && $sub['set_true'] == '1' ) {
     $out[] = 'User: ' . $key . ' has set_true = 1';
  }
}
0 голосов
/ 13 января 2010

Что случилось с вашим вызовом in_array? Я не думаю, что это правильно. Почему вы ищете $sub в $sub?

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