Поиск кратных элементов массива

Александр Кичатов

Задача:

Составить программу, выводящую на экран номера элементов массива, кратных четырем.

Решение

Создадим числовой массив и заполним его случайными значениями:

$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

Комментарии