2015-06-11 81 views
1

我有三個數組數量相同的項,其中值可以在每個數組內和數組之間相同。從三個數組創建多維數組

$areas 
0 => 1 
1 => 3 
2 => 3 
3 => 5 

$targets 
0 => 1 
1 => 2 
2 => 3 
3 => 3 

$ratings 
0 => 1 
1 => 1 
2 => 2 
3 => 3 

我想創建一個多維數組($元素)通過訪問$區和$目標的值作爲鍵顯示$收視率的值。

Example: 
$elements[area][target] = rating 
$elements[1][1] = 1 
$elements[3][2] = 1 
$elements[3][3] = 2 
$elements[5][3] = 3 

我已經嘗試了很多的功能,翻轉和合並的陣列,但在掙扎的原因很多,但主要是因爲翻轉相同的值時,使 陣列不同的項目的數量。

任何人都可以幫助我實現我想要的嗎?

+2

您將遇到問題,該密鑰必須是唯一的! – Rizier123

+0

我已經提出的最好的方法是從$ elements = array_flip($ areas)開始,然後使這個數組的值爲null。這給了我$元素1 => null,3 => null,5 => null。 從那裏,我需要一種方法將相關的目標ID添加到相應的區域ID,但我還沒有想出辦法做到這一點。 我之所以沒有發佈這個嘗試,是因爲我認爲必須有一個我沒有想到的更好的方式,我很抱歉。 – Bergkamp10

+1

@ Bergkamp10你的第一個問題是,你不能有重複的鍵,所以你不能得到你的預期輸出,它永遠不會工作 – Rizier123

回答

0

你永遠不會真的想使用這種結構,因爲你基本上試圖使用可能未設置的數字鍵。無論如何,所有丟失的鍵都會被填滿,但不會得到最終值(可能是空字符串,如果幸運的話可以爲空)。

我建議你從另一個角度來看待這個問題,因爲根本沒有正確的方法來解決這個問題。

我的建議將作爲創建multidementional陣列時這種類型的陣列的非常經常用於php associative arrays

閱讀起來。 在這個數組中,你基本上設置了key => value對,因爲你可以使用字符串作爲鍵,所以很容易創建一個有意義的數組。

$people = array(
    array(
     'firstname' => 'John', 
     'surname' => 'Doe', 
     'age' => 29, 
     'sex' => 'Male' 
     //etc... 
    ); 
); 

現在,如果你會遍歷所有的主陣列,你會得到一個數組回來與key => value對這些給你一些有用的信息,而不是很多的數字跳鐵圈;)

希望它可以幫助, Sidney