2013-01-02 31 views
21

Aiutami a dividere o dividere un array in 2 array diversi. Qui è il mio unico arrayCome dividere/dividere un array in 2 usando php?

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

voglio la matrice sopra in due serie come qui di seguito

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

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

Ciao! Benvenuti in SO. Se pubblichi una domanda qui, aspettati di avere una risposta qui. Grazie –

risposta

46

Uso array_chunk:

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

Se loro vogliono a variabili separate (invece di un array multidimensionale, utilizzare list:

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

array_slice funziona bene fino a quando si sa quanti elementi che si desidera in ogni matrice:

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

Grazie, più appropriato per me dal momento che avevo bisogno della mia matrice per dividere in un indice specifico e non in più di 2 blocchi –

0

Se si desidera dividere un array in due sub-array con un delimitatore di indice che non è array_size/2 , è possibile utilizzare la funzione di array_slice così:

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

Per stampare il risultato:

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

L'output:

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

Questo è buono, ma che ne dici di indirizzare l'esempio specifico fornito dall'OP? – sorak

+0

OP non ha specificato che l'array doveva essere diviso a metà della sua dimensione. Nel mio esempio viene utilizzato un caso in cui la delimitazione non corrisponde a metà della dimensione dell'array. –

Problemi correlati