我有一个嵌套数组,其中包含我需要的信息。
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 :(得分:2)
这已经是一个哈希图数组。所以你应该这样使用它。
您对此处的密钥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/>";
}
答案 1 :(得分:1)
你的阵列是二维的。所以第一个维度代表一个键/值对。您的解决方案是从第一维而不是第二维获取密钥。
$hashmap = [];
foreach($arrayname as $pair) {
$key = $pair['key'];
$value = $pair['value'];
$hashamp[$key] = $value;
}