Задача:
Составить программу, выводящую на экран номера элементов массива, кратных четырем.
Решение
Создадим числовой массив и заполним его случайными значениями:
$arr = [28, 22, 40, 198, 0, 12, 4, 444, -42, 18];
Перейдём к решениям.
Вывод индексов тех значений массива, которые кратны 4:
<?php
$arr = [28, 22, 40, 198, 226, 12, 4, 444, -42, 18];
foreach($arr as $k => $v)
{
if($v % 4 === 0)
echo $k, ' ';
}
Вывод значений массива, которые кратны 4:
<?php
$arr = [28, 22, 40, 198, 226, 12, 4, 444, -42, 18];
foreach($arr as $k => $v)
{
if($v % 4 === 0)
echo $v, ' ';
}
Вывод ключей массива, которые кратны 4:
$arr = [28, 22, 40, 198, 226, 12, 4, 444, -42, 18];
foreach($arr as $k => $v)
{
if($k % 4 === 0)
echo $k, ' ';
}
И, наконец, вывод значений, ключи которых кратны 4:
<?php
$arr = [28, 22, 40, 198, 226, 12, 4, 444, -42, 18];
foreach($arr as $k => $v)
{
if($k % 4 === 0)
echo $v, ' ';
}
Если нужно добавить какой-либо разделитель между элементами, но не выводить его перед первым элементом и после последнего, мы можем сохранить найденные значения в новый массив и сгенерировать нужную строку с помощью функции implode():
<?php
$arr = [28, 22, 40, 198, 226, 12, 4, 444, -42, 18];
$needles = [];
foreach($arr as $k => $v)
{
if($v % 4 === 0)
$needles[] = $k;
}
echo implode(' | ', $needles);
Результат на экране:
0 | 2 | 5 | 6 | 7