如何从嵌套数组 (php) 创建散列 table

How to create hash table from nested array (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"]); 
            }

至今只记录了最终的值,没有关联的key 数组(1){ [1]=> 字符串(3)“360”}。注意:密钥存储为字符串还是整数都没有关系!

这已经是哈希映射数组。所以你应该那样使用它。 我想你对这里的键 0, 1, .. 不感兴趣。

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

然后您可以使用 key/value pair foreach 方法来检查这是否有效:

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

您的数组是二维的。所以第一个维度代表一个 key/value 对。您的解决方案是从第一个维度而不是第二个维度获取密钥。

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