如何在数字列表中的第N个项目后显示项目

时间:2017-01-22 12:00:54

标签: php

我有数组

$myArr = [0, 1, 2 ..... , 100];

我有步变量

$step = 3;

我想在每个($ step)项目之后显示一些文本(例如“X”):

  

0 1 2 X 3 4 5 X 6 7 8 X 9 10 11 X ...

4 个答案:

答案 0 :(得分:2)

生成所需字符串的算法如下:

  • 使用for循环遍历数组的元素。
  • 在每次迭代中,检查$step字符串是否已添加$output个数量。
  • 如果已将$step个元素的数量附加到$output字符串,则将X附加到$output字符串,否则将数组的当前元素追加到$output字符串。
  • 最后退出循环后,使用$output显示结果echo $output;字符串。

所以你的代码应该是这样的:

$output = '';
$count = count($myArr);
for($i = 0; $i < $count; ++$i){
    if($i != 0 && $i % $step == 0) $output .= 'X ';
    $output .= $myArr[$i] . ' ';
}

// Display resultant $outout string
echo $output;

这是live demo

答案 1 :(得分:2)

看起来X出现在$step的倍数出现之前。因此,在打印循环元素$i之前,我们需要检查它是否为3的倍数。试试这个:

$myArr = range(0,100);
$step = 3;

foreach ($myArr as $i) {
    if ($i % $step == 0 && $i > 0) {
        echo 'X';
    }
    echo $i;
}

答案 2 :(得分:2)

以下是实际数组输出的示例,它可以使用具有相同逻辑的任何类型的数组值,

$num_arr = array(0,1,2,3,4,5,6,7,8,9,10,11,12,13);
$step = 3;
$count = 0;
$i = 0;
$final_arr = array();
foreach ( $num_arr as $num ){
    if( $i % $step  == 0 && $i > 0 ){
        $final_arr[$i+$count] = 'X';
        $final_arr[$i+$count+1] = $num;
        $count++;
    }
    else{
        $final_arr[$i+$count] = $num;
    }
    $i++;
}
print_r($final_arr);

答案 3 :(得分:0)

您可以使用Array Functions尝试此操作:

import boto3

ec2 = boto3.resource('ec2')