以三列显示php数组,第一行为一个元素,第二行和第三行为两个元素 $b=0; foreach($settings['items']作为$item){ $b++; 如果($b==1){ $out.='First'; }否则{ $out2.=‘秒’; } } 回显“.$out.”; 回显“.$out2.”;

以三列显示php数组,第一行为一个元素,第二行和第三行为两个元素 $b=0; foreach($settings['items']作为$item){ $b++; 如果($b==1){ $out.='First'; }否则{ $out2.=‘秒’; } } 回显“.$out.”; 回显“.$out2.”;,php,arrays,foreach,Php,Arrays,Foreach,哪个输出 $b = 0; foreach ($settings['items'] as $item){ $b++; if ($b==1){ $out .='First'; } else{ $out2 .='Second'; } } echo '<div class="inner">'.$out.'</div>'; echo '<div class="inner">'.$out2.'<

哪个输出

$b = 0;
foreach ($settings['items'] as $item){
    $b++;
    if ($b==1){
        $out .='First';
    } else{
        $out2 .='Second';
    }
 }

 echo '<div class="inner">'.$out.'</div>';
 echo '<div class="inner">'.$out2.'</div>';
首先
第二
但是我想要这个结构

 <div class="inner">First</div>
 <div class="inner">Second Second Second Second</div>
首先
第二秒
第二秒
我认为一个可能的解决方案是使用
array\u slice
,但对于第一个循环,我只需要一个元素,而不是两个,这就是为什么我认为我不能这样做

试试这个:

 <div class="inner">First</div>
 <div class="inner">Second Second</div>
 <div class="inner">Second Second</div>
$first=true;
$all=[];
$partners=[];
foreach($settings['items']作为$item){
如果($第一){
$first=false;
$first_out='first';//或者其他什么
$all[]=$first\u out;
}否则{
如果(计数($对)=2){
$all[]=$partners;
$partners=[];
}
$partners[]=“秒”;
}
}
foreach(全部为$value){
回显“”。内爆(',',$value)。“”;
}

先进行一点预争论,删除第一项,然后将其合并到剩余的分块数组中

$first = true;
$all = [];
$couples = [];
foreach ($settings['items'] as $item){
    if($first){
        $first = false;
        $first_out = 'First'; //or whatever
        $all[] = $first_out;
    }else{
        if(count($couples) == 2){
            $all[] = $couples;
            $couples = [];
        }
        $couples[] = 'Second';
    }
}
foreach($all as $value){
    echo '<div class="inner">'.implode(',', $value).'</div>';
}

因为在代码中不使用$settings['items'的值,所以可以使用该数组长度

array(3) {
    [0]=>
    array(1) {
    [0]=>
    string(3) "foo"
    }
    [1]=>
    array(2) {
    [0]=>
    string(3) "foo"
    [1]=>
    string(3) "foo"
    }
    [2]=>
    array(2) {
    [0]=>
    string(3) "foo"
    [1]=>
    string(3) "foo"
    }
}
<div class="inner">foo</div>
<div class="inner">foo foo</div>
<div class="inner">foo foo</div>
$count=count($settings['items']);
如果($count--)回显'First';
而($count>1){
回声“第二秒”;
$count-=2;
}
如果($count--)回显'Second';
您可以尝试一下

$count = count($settings['items']);
if ($count--) echo `<div class="inner">First</div>`;
while($count > 1) {
   echo '<div class="inner">Second Second</div>';
   $count -= 2;
}
if ($count--) echo `<div class="inner">Second</div>`;
$b=0;

对于($j=1;$j,其中,
$out2
来自何处?请在循环计数器上使用模运算。
$b%3==0
表示第一列,
$b%3!=0
表示第二列或第三列。(需要在0处开始计数器以获取第一项。)或者将数组拆分为大小为3的块。您还可以获取第一个元素,取消其设置,然后将数组拆分为大小为2的块。easyI将使用$settings['items']
$count = count($settings['items']);
if ($count--) echo `<div class="inner">First</div>`;
while($count > 1) {
   echo '<div class="inner">Second Second</div>';
   $count -= 2;
}
if ($count--) echo `<div class="inner">Second</div>`;
$b = 0;
for($j = 1; $j <= 2; $j++){
    $b++;
    for($i = 1; $i <= $b;$i++){
        switch($b){
            case '1': echo '<div class="inner">FIRST</div>';break;
            case '2': echo '<div class="inner">SECOND SECOND</div>';break;
        }
    }
}