2010-12-16 105 views
1

再現來自現有陣列(多陣列)的新的數組再現來自現有陣列(多陣列)的新的數組

如果我有稱爲參數數組:

$arr = Array 
      (
      [0] => Array(0,Array(0=>'abc')) 
      [1] => Array(0,Array(1=>'def')) 
      [2] => Array(1,Array(0=>'ghi')) 
    ) 

想到功能該通$ ARR這樣

function TODO($arr){ 
     // 
     return $new_array; 
} 

,功能有些事情將返回 結果將重現以前的數組元素,並且將得到的結果(返回):

Array 
    (
     [0] => Array 
      (
       [0] => 'abc' 
       [1] => 'def' 
      ) 

     [1] => Array 
      (
       [0] => 'ghi' 
      ) 

    ) 

任何人都知道如何做到這一點請

感謝

+3

有什麼問題嗎? – Robert 2010-12-16 10:04:57

+0

你能再舉幾個這個函數如何處理數組的例子嗎? – thirtydot 2010-12-16 10:20:54

回答

1

我不是100%肯定,我知道你想要什麼,但如果我有,這應該工作:

<?php 

$arr = Array(
    0 => Array(0, Array(0=>'abc')), 
    1 => Array(0, Array(1=>'def')), 
    2 => Array(1, Array(0=>'ghi')) 
); 


function transformArray($array) { 
    $newArray = array(); 

    foreach ($array as $value) { 
     if (!isset($newArray[$value[0]])) { 
      $newArray[$value[0]] = array(); 
     } 
     $newArray[$value[0]][] = array_pop($value[1]); 
    } 

    return $newArray; 
} 


$outputArray = transformArray($arr); 
echo '<pre>' . print_r($outputArray, true) . '</pre>'; 

?> 
0

我不這麼認爲?如果你有控制研究過這些文字陣列是如何變成文字,你應該使用serialize()unserialize()。最快和最簡單的方法。

如果您仍然需要創建從您提供的字符串數組,你可能會構建一個相當複雜的函數來做到這一點。

+0

更新了問題! – kn3l 2010-12-16 10:30:08

+0

在數組之前0或1做什麼? – 2010-12-16 10:34:43