2013-01-02 3 views
21

Helfen Sie mir, ein Array in 2 verschiedene Arrays zu teilen oder zu teilen. Hier ist mein einziges ArrayWie teilt/teilen Sie ein Array in 2 mit PHP?

$array = array("1","2","3","4","5","6"); 

ich die obige Anordnung in zwei Array wollen wie unten

$array1 = array("1","2","3"); 

$array2 = array("4","5","6"); 
+1

Hallo! Willkommen bei SO. Wenn Sie hier eine Frage stellen, erwarten Sie, dass sie hier beantwortet wird. Danke –

Antwort

46

Verwendung array_chunk:

$pieces = array_chunk($array, ceil(count($array)/2)); 

Wenn Sie sie in separaten Variablen wollen (anstelle eines mehrdimensionalen Arrays) verwenden Sie list:

list($array1, $array2) = array_chunk($array, ceil(count($array)/2)); 
17

array_slice funktioniert gut, solange Sie wissen, wie viele Elemente, die Sie in jedem Array wollen:

$array1 = array_slice($array, 0, 3); 
$array2 = array_slice($array, 3, 3); 
+0

Danke, passender für mich, da ich mein Array zu einem bestimmten Index und nicht in mehr als 2 Brocken benötigt –

0

Wenn Sie ein Array in zwei Sub-Array mit einem Index-Trennzeichen geteilt werden soll, das ist nicht array_size/2 , können Sie die Funktion array_slice so verwenden:

$init_array = array("foo", "bar", "toto"); 
$index = 1; 
$array_1 = array_slice($init_array, 0, $index); 
$array_2 = array_slice($init_array, $index); 

das Ergebnis drucken:

print_r($init_array); 
print_r($array_1); 
print_r($array_2); 

Der Ausgang:

Array([0] => foo [1] => bar [2] => toto) 
Array([0] => foo) 
Array([0] => bar [1] => toto) 
+0

Das ist gut, aber wie wäre es mit der spezifischen Beispiel von der OP zur Verfügung gestellt? – sorak

+0

OP gab nicht an, dass das Array auf die Hälfte geteilt werden musste. In meinem Beispiel wird ein Fall verwendet, in dem die Begrenzung nicht der halben Größe des Arrays entspricht. –