2014-05-06 45 views
0

我需要改變一個二維陣列,以一個三維陣列,而不管陣列的長度:需要劃分/管理陣列

我有以下:

array(89) { 
    [0]=> array(5) { [0]=>"aaa" [1]=>"bbb"[2]=>"ccc" [3]=>"ddd" [4]=>"eee" } 
    [1]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" } 
    [2]=> array(5) { [0]=>"aaa" [1]=>"bbb"[2]=>"ccc" [3]=>"ddd" [4]=>"eee" } 
    [3]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" } 
    [4]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" } 
...} 

我需要

array (?) { 
    [0]=> array(2) { 
     [0]=> array(5) { [0]=>"aaa" [1]=>"bbb"[2]=>"ccc" [3]=>"ddd" [4]=>"eee" } 
     [1]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" }} 
    [1]=> array(3) { 
     [0]=> array(5) { [0]=>"aaa" [1]=>"bbb"[2]=>"ccc" [3]=>"ddd" [4]=>"eee" } 
     [1]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" } 
     [2]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" }} 
    ...} 

'blablabla' 可以是任何長度和格式,但 'AAA', 'BBB',...是在所有陣列上的相同。需要陣列開始「AAA」

+0

我們可以看到,建立你的二維數組的代碼? (另外:請不要寫全小寫或全大寫 - 正如你可以從你的兩個問題中看到的,人們會編輯它)。 – halfer

+2

你有多行相同的密鑰..不可能 –

+0

即時消息不使用相同的密鑰 –

回答

0

這是很簡單其實,你需要的是一個foreach()

$i=-1; //this will increment on first loop so we set it to -1 
$key_to_find = $array[0][0]; //storing the 'aaa' value 
$result = array();  
foreach($array as $key=>$val){ 
    //checking if 'aaa' equals to the first value, if yes increment $i to 0 
    ($val[0]==$key_to_find)?$i++:''; 
    //save the whole array bunch 
    $result[$i][] = $val; 
} 

print_r($result); 

DEMO

+0

感謝您的幫助 –

+0

@ big.data不客氣,請將此問題標記爲已解決,方法是在左側打勾,如果有幫助^ - ^ –