2017-05-05 90 views
0
<?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部分。如何划分3个部分中的阵列列表

如果阵列的计数是30。

所以想要回声为第一记录10

回声“阿尔法”;

Second 10 Records

回声“Beta”;

3rd 10 Records

回声“Gamma”;

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

我该如何回应alpha,beta和gamma。

+1

你会用数组'13'做什么?这将不能被“3”完全整除。 –

+0

如果计数是13,那么3部分将包含4,4和其余部分将是5 –

+0

我希望你期待这..你可以检查我最近的帖子。 –

回答

0

我的事情你的问题是关于如果条件。所以,你可以使用此代码:

$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++; 
} 
+0

感谢它对我的作品 –

0

尝试使用正常的循环:

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"; 
    } 
+0

我想做1循环。 –

+0

它只是一个列表,并且首先我想回显第二个测试版的alpha,第三个部分我想回显gamma。 –

0

试试这个,希望大家期待这一点。根据您在评论中指定的要求。

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

让我们的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; 
} 

这将你需要的分区。