2013-01-02 14 views
21

Pomóż mi podzielić lub podzielić tablicę na 2 różne tablice. Oto moja pojedyncza tablicaJak podzielić/podzielić tablicę na 2 za pomocą php?

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

Chcę powyższą tablicę na dwie tablicy jak poniżej

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

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

Witam! Witamy w SO. Jeśli opublikujesz tutaj pytanie, spodziewaj się uzyskać odpowiedź tutaj. Dzięki –

Odpowiedz

46

użytkowania array_chunk:

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

jeśli chcesz je w osobnych zmiennych (zamiast wielowymiarowej tablicy) użyj list:

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

array_slice działa dobrze tak długo, jak wiesz, ile elementy chcesz w każdej tablicy:

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

Dzięki, bardziej odpowiednie dla mnie, ponieważ potrzebowałem mojej tablicy do podziału na jeden konkretny indeks i nie więcej niż na 2 kawałki –

0

Jeśli chcesz podzielić tablicę w dwóch sub-macierzy z ogranicznikiem indeksu, który nie jest array_size/2 można użyć funkcji array_slice tak:

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

Aby wydrukować wynik:

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

Wyjście:

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

To jest dobre, ale co powiesz na konkretny przykład dostarczony przez PO? – sorak

+0

OP nie określił, że tablica musiała zostać podzielona na połowę rozmiaru. Mój przykład wykorzystuje przypadek, w którym delimitacja nie odpowiada połowie rozmiaru tablicy. –

Powiązane problemy