簡體   English   中英

在PHP中拆分多維數組

[英]splitting a multidimensional array in php

我有一個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個分區,則每個分區會將其元素保存到自己的文件中。

我有一些解決方案,但是它們沒有按預期工作,所以我在這里要求您提供解決方案。

謝謝。

發現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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM