2013-07-07 173 views
0

我不是要求你爲我寫代碼。任何方向將不勝感激。如何將這個多維數組轉換爲關聯數組?

我有以下格式的數組:

Array 
(
[0] => Array 
    (
    [title] => Here is the first title 
    [count] => 765 
    [description] => Description 
) 
[1] => Array 
    (
    [title] => The second title 
    [count] => 90 
    [description] => Description 
    [other] => Data 
) 
[2] => Array 
    (
    [title] => A third title 
    [count] => 1080 
    [description] => Description 
) 
) 

我想知道怎樣才能將其轉化成類似下面,使用「標題」和「計數」的數據。

Array 
(
[Here is the first title] => 765 
[The second title] => 90 
[A third title] => 1080 
) 

在我創建了下面的代碼的那一刻:

$results = array(); 
foreach ($inputarray as $value) { 
    $results[] = $value["count"]; 
} 

這給了我下面的:

Array 
(
[0] => 765 
[1] => 90 
[2] => 1080 
) 

但我不知道如何使標題數據關聯計數數據的新密​​鑰。有沒有一個功能可以做到這一點?可以對上述內容進行修改嗎?還是比較複雜?謝謝你的幫助。

回答

0

只需填充新陣的鑰匙明確與標題:

$results = array(); 
foreach ($inputarray as $value) { 
    $results[$value["title"]] = $value["count"]; 
} 

要知道,具有相同職務的任何條目將覆蓋前一個,因爲數組鍵必須是唯一的。我懷疑這是實現目標的最佳方式,但這是你要求的。這是可以做到

+0

Thnks對您有所幫助。你是說如果一個數組有相同的標題?如果是這樣,這將不會是一個很有可能的,因爲它在進入這個階段之前會被檢查。 – user2038927

+0

這是正確的,你用作鍵的任何東西都必須是唯一的,否則它將覆蓋以前具有該鍵的數組項。例如'$ arr = array(1 => 1,1 => 2);'將得到只有一個值的數組(最後一個2)。在這裏閱讀更多:http://php.net/manual/en/language.types.array.php –

+0

儘管標題是獨一無二的,但我最終得出以下結果: 'Array([] => 1080)' – user2038927

0

一種方式是使用array_reduce和封蓋(需要PHP 5.3+)

$res = array_reduce($array, function (&$results, $v){ 
    $results[$v["title"]] = $v["count"]; 
}, array()); 
相關問題