如何从嵌套数组中创建哈希表(PHP)

4
我有一个嵌套数组,里面包含我需要的信息。
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"]); 
            }

目前仅记录最终值,没有相关的键关联。数组(1) { [1]=> string(3) "360" }。注意:键存储为字符串或整数均无影响!

2个回答

2
这已经是一个哈希映射数组。因此,您应该以这种方式使用它。 我想您并不关心这里的键0, 1, ..
$hashmap = array();
foreach ($arr as $value) {
    $hashmap[$value["key"]] = $value["value"]; 
}

您可以使用键/值对的foreach方法来检查它是否起作用:
您可以使用key/value对的foreach方法来检查这是否有效:
foreach($hashmap as $key => $value){
    echo 'map['.$key.']='.$value." \n<br/>";
}

1
你的数组是二维的。因此,第一维表示键/值对。你的解决方案从第一维中获取键,而不是第二维。
$hashmap = [];
foreach($arrayname as $pair) {
    $key           = $pair['key'];
    $value         = $pair['value'];
    $hashamp[$key] = $value;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接