如何将数组列表分成 3 部分

How to Divide Array list in 3 Parts

<?php 
$count=count($admissions);
$divide=$count/3;
$divide=round($divide);

foreach($admissions as $key => $row)
{
if(//First Part ) 
{
    echo  "Alpha";} 
else if(//2nd Part )
{ 
    echo "Beta";
}else 
{
    echo "Gamma"; 
}
} 
?>

我有一个动态数组列表,我想将它平均分成 3 个部分。

如果数组的计数是 30。

所以我想回显前 10 条记录

回声"Alpha";

后 10 条记录

回声"Beta";

第 3 10 条记录

回声"Gamma";

如果数组大小为 60,那么它将被分成 20 个部分。

如何回显 alpha、beta 和 gamma。

尝试使用普通的 for 循环:

   For ($i = 0; $i < $count ; $i++){
      echo "alpha";
   }

   For ($i = $count; $i < 2*$count ; $i++){
      echo "beta";
   }

  For ($i = 2*$count; $i < 3*$count ; $i++){
      echo "gamma";
   }

尝试这个希望你期待这个。根据您在评论中指定的要求。

Try this code snippet here

<?php
ini_set('display_errors', 1);
$range=range(0,12);
$result=array_chunk($range, 4);
if(count($result[count($result)-1])!=4)
{
    $temp=$result[count($result)-1];
    unset($result[count($result)-1]);
    $result[count($result)-1]=array_merge($result[count($result)-1],$temp);
}
print_r($result);

我觉得你的问题是关于 if 条件的。所以你可以使用这个代码:

$count=count($admissions);
$divide=$count/3;
$divide=round($divide);

$i = 1;
foreach($admissions as $key => $row)
{
    if($i > 0 && $i <= $divide) 
    {
        echo  "Alpha";
    } 
    else if($i > $divide && $i <= ($divide*2))
    { 
        echo "Beta";
    }
    else //equal else if($i > $divide*2 )
    {
        echo "Gamma"; 
    }
    $i++;
} 

让我们有一个包含三个元素的 array 并使用模运算:

<?php 
$count=count($admissions);
$divide=$count/3;
$divide=round($divide);
$divisions = array(0 => array(), 1 => array(), 2 => array())
$modulo = 0;

foreach($admissions as $key => $row)
{
    $divisions[($modulo + 1) % 3][$key] = $row;
} 

这将完成您需要的分区。