2013-10-16 3 views
-2

J'essaie de diviser le tableau ci-dessous. array_chunk, splice, etc dint me donne la sortie comme prévu. Ci-dessous le tableau d'entrée:divisant un tableau en sous-matrices

Array ([0] => Stephen 
     [1] => stephearce 
     [2] => [email protected] 
     [3] => Stephen 
     [4] => stephon 
     [5] => [email protected] 
     [6] => Stephen 
     [7] => richard.stephens 
     [8] => [email protected] 
    ) 

Je veux comme ci-dessous:

Array ( 
     [0] => Stephen 
     [1] => stephearce 
     [2] => [email protected] 
    ) 
Array ( 
     [0] => Stephen 
     [1] => stephon 
     [2] => [email protected] 
    ) 
Array (
     [0] => Stephen 
     [1] => richard.stephens 
     [2] => [email protected] 
    ) 

L'utilisation array_chunk me fournit comme ci-dessous, que je ne veux pas comme ceci:

Array (
     [0] => Array (
         [0] => Stephen 
         [1] => stephearce 
         [2] => [email protected] 
        ) 
     [1] => Array ( 
         [0] => Stephen 
         [1] => stephon 
         [2] => [email protected] 
        ) 
     [2] => Array ( 
         [0] => Stephen 
         [1] => richard.stephens 
         [2] => [email protected] 
        ) 
) 

S'il vous plaît aider !

+0

utiliser une boucle pour accéder au tableau des valeurs –

+0

bâton avec array_chunk et boucle à travers le résultat –

+0

je dois exporter les valeurs dans CSV; et donc j'ai besoin de valeurs dans les tableaux itslef. comment puis-je le faire en utilisant pour boucle? – Maddy

Répondre

0

Pour faire ce que vous demandez, vous devez savoir combien d'entrées il y a dans le tableau (divisé par la taille de votre morceau de 3, de sorte que vous pouvez lister ces variables:

list($var1, $var2, $var3) = array_chunk($myData, 3); 

mais si vous écrivez à csv, beaucoup plus facile de simplement faire:

$chunkedData = array_chunk($myData, 3); 

foreach($chunkedData as $chunk) { 
    fputcsv($myFileHandle, $chunk); 
} 
+0

Merci! Cela a aidé – Maddy

0

est ici working code:

<? 
$arr = Array (0 => "Stephen", 
     1 => "stephearce", 
     2 => "[email protected]", 
     3 => "Stephen", 
     4 => "stephon", 
     5 => "[email protected]", 
     6 => "Stephen", 
     7 => "richard.stephens", 
     8 => "[email protected]", 
    ); 
print_r($arr); 
foreach ($arr as $item){ 
    if ($item == "Stephen"){ 
    if (isset($newArr)) $output[] = $newArr; 
     $newArr = array(); 
    } 
    $newArr[] = $item; 
} 
if (count($newArr) > 0) $output[] = $newArr; 
print_r($output); 
?> 

Vous avez le plein contrôle en boucle foreach - peut faire tout ce que vous voulez avec ces données

Questions connexes