2015-12-22 76 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; 
}