2010-12-16 3 views
1

aus dem neuen Array Reproducing vorhandenen Array (Multi-Array)das neue Array aus bestehenden Array (Multi-Array) Reproducing

Wenn ich ein Array als Parameter aufgerufen haben:

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

Möchten Sie auf eine Funktion dass Pass $ arr soetwas wie diese

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

und die Funktion kehrt RESULT Elemente aus früheren Array Reproduzieren sein, und es wird das Ergebnis bekommen werden () Zurückgegeben:

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

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

    ) 

Jeder weiß, wie dies zu tun Bitte

dank

+3

Was ist die Frage? – Robert

+0

Können Sie noch ein paar Beispiele geben, wie diese Funktion das Array verarbeiten soll? – thirtydot

Antwort

1

Ich bin nicht 100% sicher, ich habe verstanden, was Sie wollen, aber wenn ich habe, sollte diese Arbeit:

<?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

Ich denke nicht?. Wenn Sie kontrollieren, wie diese Textfelder in Text umgewandelt werden, sollten Sie und unserialize() verwenden. Der schnellste und einfachste Weg.

Wenn Sie noch Arrays aus den von Ihnen bereitgestellten Strings erstellen müssen, müssen Sie wahrscheinlich eine recht komplexe Funktion erstellen.

+0

aktualisiert die Fragen! – kn3l

+0

Was machen die 0 oder 1 vor dem Array? –

Verwandte Themen