在php中拆分多维数组

时间:2013-10-14 13:22:45

标签: php arrays multidimensional-array

我有一个PHP数组如下:

$array = array("one" => "is one" , "two" => "is two" , "three" => "is three", "four" => "is four" , "five" => "is five" , "six" => "is six" , "seven" => "is seven" , "eight" => "is eight" , "nine" => "is nine" , "ten" => "is ten");

将此数组分为两组,即5个元素后,使用以下方法:

 function partition(Array $list, $p) {
    $listlen = count($list);
    $partlen = floor($listlen / $p);
    $partrem = $listlen % $p;
    $partition = array();
    $mark = 0;
    for($px = 0; $px < $p; $px ++) {
        $incr = ($px < $partrem) ? $partlen + 1 : $partlen;
        $partition[$px] = array_slice($list, $mark, $incr);
        $mark += $incr;
    }
    return $partition;
}
$partitioned = partition($array , 2);

现在使用这个分区数组我使用以下代码:

$totalArrays = count($partitioned);
for($pb=0; $pb < $totalArrays; $pb++){
    print_r($partitioned[$pb]);

}

以上print_r($partitioned[$pb]);输出2个数组。

这将显示两个数组的内容作为键和值,我实际想要实现的是,我想将第一个数组的元素保存到一个名为“First.txt”和“Second.txt”的文件中第二,名称并不重要,它们可以编号,但重要的是分区,例如,如果有10个分区,每个分区将其元素保存到自己的文件中。

我有一些解决方案,但它们没有按预期工作,所以我在这里请求您的解决方案。

谢谢。

1 个答案:

答案 0 :(得分:5)

发现array_chunk()

$result = array_chunk($source, 5);

如果要保留密钥,请指定第三个参数:

$result = array_chunk($source, 5, true);

编辑,因为您需要有关将此文件写入文件的指南,我将提供一个提示:

$files = ['One.txt', 'Two.txt', 'Three.txt']; //fill this as you need
foreach(array_chunk($source, 5, true) as $i=>$partition)
{
   //write i-th partition to file with i-th name
   writePartition($files[$i], $partition);
}