2010-12-16 54 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