Ассоциативный с числовым массивом в PHP
У меня есть ассоциативный массив, какие ключи я хочу использовать в числах. Что я имею в виду: массив выглядит следующим образом:
$countries = array
"AD" => array("AND", "Andorra"),
"BG" => array("BGR", "Bulgaria")
);
Очевидно, что AD равно 0, а BG равно 1, но когда я печатаю $countries[1]
, он не отображает даже "Array"
.
Когда я печатаю $countries[1][0]
, он также ничего не отображает. У меня есть номер ключа, но я не должен использовать ассоциативный ключ.
Ответы
Ответ 1
Идеальный вариант использования array_values
:
$countries = array_values($countries);
Затем вы можете получить значения по их индексу:
$countries[0][0]; // "AND"
$countries[0][1]; // "Andorra"
$countries[1][0]; // "BGR"
$countries[1][1]; // "Bulgaria"
Ответ 2
array_keys()
даст вам ключи массива. array_values()
даст вам значения массива. Оба будут индексироваться численно.
Ответ 3
Есть несколько способов обхода, чтобы получить то, что вы хотите. Помимо создания вторичного массива ключевых карт, ввода ссылок или ArrayAccess
мерзости, которая одновременно содержит числовые и ассоциативные ключи, вы могли бы также используйте это:
print current(array_slice( current(array_slice($countries, 1)), 0));
Это верное обходное решение для $countries[1][0]
. Обратите внимание, что ключи массива отображаются в том же порядке; bemusing.