foreach循环输出中的连续数组键

时间:2018-12-27 01:19:14

标签: php arrays loops foreach key

我有两个数组(例如$ arrayA和$ arrayB),其中包含许多值。

我想使用一个只包含4个div的foreach循环,用这些值填充8个div的列表,每个div从各自的数组中增加一个增量键。

以下内容有望说明:

foreach ($values as $value) {
    echo
    '<div class="type-a">' . $arrayA[i] . '</div>
    <div class="type-b">' . $arrayB[i] . '</div>
    <div class="type-a">' . $arrayA[i+1] . '</div>
    <div class="type-b">' . $arrayB[i+1] . '</div>';
 }

 <div class="type-a"> A1 </div>
 <div class="type-b"> B1 </div>
 <div class="type-a"> A2 </div>
 <div class="type-b"> B2 </div>
 <div class="type-a"> A3 </div>
 <div class="type-b"> B3 </div>
 <div class="type-a"> A4 </div>
 <div class="type-b"> B4 </div>

任何建议都会很棒!

1 个答案:

答案 0 :(得分:0)

在对长度差异发表评论之后,您可以计算每个的大小以确定哪个更大,然后遍历其中一个作为主数组:

<?php
# Make sure each value is an array
$arrayA = (empty($arrayA))? [] : array_values($arrayA);
$arrayB = (empty($arrayB))? [] : array_values($arrayB);
# Determine which array is longer
if(count($arrayA) >= count($arrayB)) {
    $arr_L = $arrayA;
    $arr_S = $arrayB;
}
else {
    $arr_L = $arrayB;
    $arr_S = $arrayA;
}
# Iterate over the larger array
foreach($arr_L as $key => $value): ?>

<!-- Just echo the value here because you are iterating this array -->
<div class="type-a"> <?php echo $value ?> </div>

<!-- Use the current key from this array to fetch the value from the B array -->
<div class="type-b"> <?php echo $arr_S[$key] ?> </div>

<?php endforeach ?>