Формирование массива в цикле

147
05 декабря 2018, 03:30

В цикле формируется массив, к примеру:

$phones = [];
while(true) {
    ....
    //Здесь достаются номера из бд
    $phones[] = $number;
}

подскажите, как сделать, чтобы если номер уже есть в массиве, то нужно по ключу этого номера заменить значение. Значение должно быть массив, в котором указан текущий номер телефона и количество раз, сколько данный номер появился в цикле.
к примеру в массиве уже есть номер $phones[10] == '1234567', в текущей итерации номер также '1234567', тогда значение массива с ключом 10 должно быть таким:

$phones[10]['1234567' => 2] // 2- это столько раз данный номер появился в цикле
Answer 1

Пример:

$arr = [1337, 1447, 4424, 1337, 555];
$arr = array_count_values($arr);
foreach ($arr as $key => $value) {
    $res[] = ($value > 1) ? [$key => $value] : $key; 
}
print_r($res);

Результат:

Array
(
    [0] => Array
        (
            [1337] => 2
        )
    [1] => 1447
    [2] => 4424
    [3] => 555
)
READ ALSO
Как совместить jQuery и PHP?

Как совместить jQuery и PHP?

У меня есть код на js:

134
Помогите понять решение

Помогите понять решение

У меня есть код:

178
Неправильное отображение

Неправильное отображение

Делаю бэкэнд в приложении на yii2-advanced, очистил кэш и теперь вместо страницы индекса в бэкэнде отображается файл конфигаКак исправить?

141