Есть ли на PHP сокращенный перебор массива?

Да, в PHP есть несколько способов сократить перебор массива. Рассмотрим некоторые из них:

1. Цикл foreach:

$arr = [1, 2, 3, 4, 5];

foreach ($arr as $item) {
    echo $item . " ";
}

2. Цикл for:

$arr = [1, 2, 3, 4, 5];
$length = count($arr);

for ($i = 0; $i < $length; $i++) {
    echo $arr[$i] . " ";
}

3. Цикл while:

$arr = [1, 2, 3, 4, 5];
$length = count($arr);
$i = 0;

while ($i < $length) {
    echo $arr[$i] . " ";
    $i++;
}

4. Цикл do-while:

$arr = [1, 2, 3, 4, 5];
$length = count($arr);
$i = 0;

do {
    echo $arr[$i] . " ";
    $i++;
} while ($i < $length);

5. Функция array_walk:

$arr = [1, 2, 3, 4, 5];

function printItem($item) {
    echo $item . " ";
}

array_walk($arr, 'printItem');

6. Функция array_map:

$arr = [1, 2, 3, 4, 5];

function multiplyByTwo($item) {
    return $item * 2;
}

$result = array_map('multiplyByTwo', $arr);

print_r($result);

7. Функция array_reduce:

$arr = [1, 2, 3, 4, 5];

function sum($carry, $item) {
    return $carry + $item;
}

$result = array_reduce($arr, 'sum');

echo $result;

8. Функция array_filter:

$arr = [1, 2, 3, 4, 5];

function isEven($item) {
    return $item % 2 == 0;
}

$result = array_filter($arr, 'isEven');

print_r($result);

Это некоторые из способов сокращенного перебора массива в PHP. В зависимости от конкретной задачи выбирается подходящий способ.