Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
$nums = [5, 8, 1, 6];
$even = array_filter($nums, fn($n) => $n % 2 === 0);
echo json_encode($even), ' ', json_encode(array_values($even)), "\n";{"1":8,"3":6} [8,6]
- Ждать, что
array_filterперенумерует оставшиеся значения: она сохраняет их исходные ключи, поэтому чётные из[5, 8, 1, 6]лежат под ключами1и3, аjson_encodeпишет объект. - Считать, что функция выбирает, что выбросить:
array_filterоставляет каждое значение, для которого она вернулаtrue, а остальные отбрасывает.
- Что оставит
array_filter, если вызвать его без функции? - Почему после фильтра фронтенд может получить JSON-объект вместо массива?