2015-12-22 79 views
4

我有我需要的信息嵌套数组。如何从嵌套数组创建哈希表(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"]); 
      } 

迄今为止仅仅记录的最终值,而无需相关联的键 阵列(1){[1] =>串(3) “360”}。注意:如果密钥存储为字符串或int,则无关紧要!

回答

2

这已经是hashmaps数组。所以你应该这样使用它。 对这里我想,钥匙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

阵列是二维的。所以第一维表示一个键/值对。您的解决方案从第一个维度开始,而不是第二个维度。

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