【问题标题】:How to Divide Array list in 3 Parts如何将数组列表分成 3 部分
【发布时间】:2017-10-04 07:27:33
【问题描述】:
<?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 条记录

回显“阿尔法”;

第二十条记录

回显“Beta”;

3rd 10 条记录

回声“伽玛”;

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

如何回显 alpha、beta 和 gamma。

【问题讨论】:

  • 你会如何处理计数数组 13 ?不能被3 整除。
  • 如果计数为 13,则 3 部分将包含 4,4,其余部分将包含 5
  • 我希望你期待这个......你可以查看我最近的帖子。

标签: php arrays list loops divide


【解决方案1】:

尝试使用普通的 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";
   }

【讨论】:

  • 我想做 1 个循环。
  • 它只是一个列表,首先我想为第二个 beta 回显 alpha,第三部分我想回显 gamma。
【解决方案2】:

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

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);

【讨论】:

    【解决方案3】:

    我觉得你的问题是关于 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++;
    } 
    

    【讨论】:

      【解决方案4】:

      让我们有一个由三个元素组成的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;
      } 
      

      这将完成您需要的分区。

      【讨论】:

        猜你喜欢
        • 2012-11-20
        • 1970-01-01
        • 2012-01-31
        • 1970-01-01
        • 2023-04-10
        • 2015-02-25
        • 2014-10-21
        • 1970-01-01
        • 2015-10-01
        相关资源
        最近更新 更多