Страницы

Поиск по вопросам

среда, 15 мая 2019 г.

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

В цикле формируется массив, к примеру:
$phones = []; while(true) { .... //Здесь достаются номера из бд $phones[] = $number; }
подскажите, как сделать, чтобы если номер уже есть в массиве, то нужно по ключу этого номера заменить значение. Значение должно быть массив, в котором указан текущий номер телефона и количество раз, сколько данный номер появился в цикле. к примеру в массиве уже есть номер $phones[10] == '1234567', в текущей итерации номер также '1234567', тогда значение массива с ключом 10 должно быть таким:
$phones[10]['1234567' => 2] // 2- это столько раз данный номер появился в цикле


Ответ

Пример:
$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 )

Комментариев нет:

Отправить комментарий