2012-09-01 33 views
0

讓說,我有這個print_r輸出,這是動態的,而不是相同的每個條件PHP三維陣列,復位鍵,如果第二個元素不同

Array 
(
    [2] => Array 
     (
      [1] => 24 
      [2] => 23,25 
     ) 

    [3] => Array 
     (
      [3] => 27 
      [4] => 27,26 
      [5] => 28,27,26 
     ) 

) 

正如你所看到的,數組元素從[3][4][5][3]開始,如何如果第二個元素不相同,請從[1][2]...[n]開始。

理想的情況下我所尋找的是類似

Array 
(
    [2] => Array 
     (
      [1] => 24 
      [2] => 23,25 
     ) 

    [3] => Array 
     (
      [1] => 27 
      [2] => 27,26 
      [3] => 28,27,26 
     ) 

) 

我如何做到這一點?由於

+2

產生什麼這陣? –

+0

不僅如此,但你的代碼是什麼? – jeremy

+0

@Truth,我使用jQuery傳遞產品ID和產品位置,第二個元素是產品ID,第三個元素是它們在樹中的位置,'parseInt($(this).closest('。plist')。prevAll ).length)-1' – cicakman

回答

3

array_values返回與新的數字索引數組的值:

foreach($a as $k => $v) { 
    $a[$k] = array_values($v); 
} 

添加條件,如果你只是想重新索引你的一些子陣列。


功能的方法:

$a = array_map(function($v) { 
    return array_values($v); 
}, $a); 
+0

hmm,當我使用這種方法時,如果新值添加到相同的數組,第三個數組會變成錯誤 – cicakman

+0

@cicakman:第三個數組?我看到只有兩個數組在你的問題 – knittl

+0

是的,抱歉看起來不對,我的意思是,第二個數組值增加了更多的新值添加到第二個數組 – cicakman

相關問題