Как создать хеш-таблицу из вложенного массива (php)

У меня есть вложенный массив с нужной мне информацией.

array(66) {
[0]=>
array(2) {
["key"]=>
string(1) "9"["value"]=>
string(1) "9"}
[1]=>
array(2) {
["key"]=>
string(3) "104"["value"]=>
string(1) "3"}
[2]=>
array(2) {
["key"]=>
string(3) "105"["value"]=>
string(1) "1"}
...

Однако этот формат не очень полезен. Более полезным будет

[9]=>9
[104]=>3
[105]=>1

и так далее.

К сожалению моя попытка

foreach ($arrayname as $key => $value) {
$i= ((int) $value);
$hashmap[$i] = ($value["value"]);
}

на сегодняшний день просто записывает окончательное значение, без связанного ключа
array (1) {[1] => string (3) «360»}. Примечание: не имеет значения, хранится ли ключ в виде строки или int!

4

Решение

Это уже массив хеш-карт. Таким образом, вы должны использовать это таким образом.
Вы не заинтересованы в ключах 0, 1, .. здесь я полагаю

$hashmap = array();
foreach ($arr as $value) {
$hashmap[$value["key"]] = $value["value"];
}

Затем вы можете использовать метод foreach для пары ключ / значение, чтобы убедиться, что это работает:

foreach($hashmap as $key => $value){
echo 'map['.$key.']='.$value." \n<br/>";
}
2

Другие решения

Ваш массив двумерный. Таким образом, первое измерение представляет пару ключ / значение. Ваше решение берет ключ из первого измерения, а не из второго.

$hashmap = [];
foreach($arrayname as $pair) {
$key           = $pair['key'];
$value         = $pair['value'];
$hashamp[$key] = $value;
}
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector