В цикле формируется массив, к примеру:
$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
)
Комментариев нет:
Отправить комментарий