-2

我正在尝试拆分以下数组。array_chunk、splice 等按预期给我输出。下面是输入数组:

Array ( [0] => Stephen 
        [1] => stephearce
        [2] => s@gmail.com
        [3] => Stephen
        [4] => stephon 
        [5] => stn@kcl.ac.uk  
        [6] => Stephen 
        [7] => richard.stephens 
        [8] => rins@maneer.ac.uk 
      )

我想要它如下:

Array ( 
        [0] => Stephen 
        [1] => stephearce 
        [2] => s@gmail.com
      ) 
Array ( 
        [0] => Stephen  
        [1] => stephon 
        [2] => stn@kcl.ac.uk
      ) 
Array (
        [0] => Stephen
        [1] => richard.stephens
        [2] => rins@maneer.ac.uk
      )

使用 array_chunk 为我提供如下,我不希望这样:

Array (
        [0] => Array (
                       [0] => Stephen 
                       [1] => stephearce 
                       [2] => s@gmail.com 
                     )
        [1] => Array (  
                       [0] => Stephen 
                       [1] => stephon 
                       [2] => stn@kcl.ac.uk
                     )
        [2] => Array ( 
                       [0] => Stephen 
                       [1] => richard.stephens 
                       [2] => rins@maneer.ac.uk
                     )
)

请帮忙 !

4

2 回答 2

0

这是工作代码

<?
$arr = Array ( 0 => "Stephen",
        1 => "stephearce",
        2 => "s@gmail.com",
        3 => "Stephen",
        4 => "stephon",
        5 => "stn@kcl.ac.uk",  
        6 => "Stephen",
        7 => "richard.stephens", 
        8 => "rins@maneer.ac.uk",
      );
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);
?>

您可以完全控制 foreach 循环- 可以对这些数据做任何您想做的事情

于 2013-10-16T09:54:02.257 回答
0

要执行您的要求,您需要知道数组中有多少条目(除以您的块大小 3,以便您可以列出这些变量:

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

但如果您正在写入 csv,则更容易做到:

$chunkedData = array_chunk($myData, 3);

foreach($chunkedData as $chunk) {
    fputcsv($myFileHandle, $chunk);
}
于 2013-10-16T09:51:37.480 回答