Intereting Posts
Как определить, удалось ли выполнить запрос на обновление MySQL, когда данные, переданные в запросе, такие же, как и в базе данных? Лучший способ использования PDO в процедурной среде Игнорировать ошибку загрузки изображения Каков правильный способ подсчета комментариев, хитов и комментариев к статье в индексе статей? MySQL / PHP Вставка одной и той же строки дважды Как я могу проверить, открыты ли порты 465 и 587 с помощью PHP? PHP и MySQL: порядок по последней дате и лимиту 10 php изменение размера изображения или перед загрузкой Ошибки пространства имен SimpleXML SOAP Получение многоканальных данных Google Analytics через API Как запустить несколько PHP-скриптов из PHP-скрипта (например, пакетного файла)? Возможно ли получить список категорий eBay через API программно? Установите PECL на Mac OS X 10.6 PHP mysqli возвращает строку и задает значение var help Какова цель блока кода, который не является частью if / function и т. Д.

PHP | Массив получает значение и ключ

У меня есть PHP-массив, который выглядит так:

$array = Array ( [teamA] => Array ( [188555] => 1 ) [teamB] => Array ( [188560] => 0 ) [status] => Array ( [0] => on ) ) 

В приведенном выше примере я могу использовать следующий код:

 echo $array[teamA][188555]; 

для получения значения 1.

Вопрос теперь, есть ли способ получить 188555 аналогичным образом;

Команды keysA, teamB и статус всегда одинаковы в массиве. Кроме того, массивы teamA и teamB всегда содержат только одну запись.

Так есть способ получить только ключ первого элемента массива teamA и teamB?

 echo array_keys($array['teamA'])[0]; 

Обратитесь к this за подробной информацией с официального сайта PHP.

Более простой:

 echo key($array['teamA']); 

Больше информации

  foreach($array as $key=>$value) { foreach($value as $k=>$v) { echo $k; } } 

ИЛИ использовать key

 echo key($array['teamA']); 

Используйте два foreach

 foreach($array as $key => $value){ foreach($value as $key1 => $value2){ echo $key1; } } 

Таким образом, вы также можете масштабировать приложение для использования в будущем. Если будет больше элементов, то это также не сломает приложение.

Вы можете использовать array_flip для обмена ключами и значениями. Таким образом, массив ('12345' => 'foo') становится массивом ('foo' => '12345').

Подробности о array_flip можно изучить здесь .

Я бы предложил использовать список ($ key, $ value) = each ($ array ['teamA']), так как вопрос был как для ключа, так и для значения. Однако вы не сможете получить второе или третье значение массива без цикла. Возможно, вам придется сначала сбросить массив, если вы каким-то образом изменили его итератор.

Я полагаю, что самый простой способ сделать это – использовать array_keys ()?

Так вы бы сделали:

 $teamAKey = array_shift(array_keys($array['TeamA'])); $teamBKey = array_shift(array_keys($array['TeamB'])); 

Очевидно, что ваш подход будет зависеть от того, сколько раз вы намереваетесь это сделать.
Подробнее о array_keys и array_shift .