-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

あなたが求めていることを行うには、配列にいくつのエントリがあるかを知る必要があります (これらの変数をリストできるように、チャンク サイズ 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 に答える
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 に答える