У меня есть вложенный массив с нужной мне информацией.
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!
Это уже массив хеш-карт. Таким образом, вы должны использовать это таким образом.
Вы не заинтересованы в ключах 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/>";
}
Ваш массив двумерный. Таким образом, первое измерение представляет пару ключ / значение. Ваше решение берет ключ из первого измерения, а не из второго.
$hashmap = [];
foreach($arrayname as $pair) {
$key = $pair['key'];
$value = $pair['value'];
$hashamp[$key] = $value;
}