@VishenkaNaTorte

Можно ли как-то считать несуществующие элементы массива равными 0?

У меня рандомно создается ассоциативный массив, каких-то ключей и значений может вовсе не быть. Я с помощью foreach пробегаюсь по нему и вывожу каждое его значение, но если какие-то ключи отсутствуют

[
    4 => 1
]


то ничего не выведется вместо них. Но можно ли как-то вывести 0 на их месте?

То есть чтобы вывелось, на примере массива выше : 0, 0, 0, 1

<?php
    $N = rand(1, 10); 
    $M = rand(1, 10);
    $result = [];
    $i = $M;

    while ($i > 0) {
        $count = rand(1, $N);
        array_push($result, $count);
        $i--;
    }

    asort($result);
    $arr = array_count_values($result);

    foreach ($arr as $vote) {
        print($vote).'<br>';
    }
?>
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
@DimkaI
Системный адинистратор, разработчик ПО
Можно, например так:
for ($i = 0; $i < 10; $i++) {
    if (isset($result[$i])) {
        print($result[$i]) . '<br>';
    } else {
        print('0') . '<br>';
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F
echo implode('<br>', array_map(fn($i) => $arr[$i] ?? 0, range(1, max(array_keys($arr)))));
Ответ написан
Комментировать
@rPman
если ключи числовые то обычный for($i=0;$i<размер;$i++) ...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы