【问题标题】:dividing an array into subarrays将数组划分为子数组
【发布时间】:2013-10-16 09:38:07
【问题描述】:

我正在尝试拆分以下数组。 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
                     )
)

请帮忙!

【问题讨论】:

  • 使用 for 循环访问数组值
  • 坚持使用array_chunk并循环遍历结果
  • 我必须将值导出到 csv;所以我需要数组中的值。如何使用 for 循环完成它?
  • 你想要的是 3 个独立的数组?因此,您需要将它们分配给 3 个单独的变量.... 似乎有点愚蠢;为什么不坚持使用你得到的嵌套数组,它仍然可以轻松循环

标签: php arrays split divide


【解决方案1】:

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

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

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

$chunkedData = array_chunk($myData, 3);

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

【讨论】:

    【解决方案2】:

    这里是working code

    <?
    $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 循环 - 可以对这些数据做任何您想做的事情

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-10
      • 2013-04-27
      • 2023-03-17
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多