Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Сортировка по значениям, вывод по ключиам
Покинул форум
Сообщений всего: 11
Дата рег-ции: Февр. 2015
Помог: 0 раз(а)
Всем привет! Я новичок в PHP и занимаюсь тем, что ломаю себе голову простыми задачками.
Вот одна из них:
Имеется массив $array = array('Иванов' => 15, 'Петорв' => 40, 'Сидоров' => 50, 'Пупкин' =>
18, 'Попов' => 51, 'Орлов' => 38, 'Карпов' => 35);
Необходимо сделать сортировку по значениям и вывести ключи в список:
Возрастная группа до 20: Иванов Пупкин
Возрастная группа до 45: Петорв Орлов Карпов
Возрастная группа от 50: Сидоров Попов
Решил задачу так:
Покинул форум
Сообщений всего: 11
Дата рег-ции: Февр. 2015
Помог: 0 раз(а)
DelphinPRO пишет:
отсортировать с помощью usort
вывести одним циклом.
без всяких ваших age* функций
С помощью usort я отсортирую массив в порядке возрастания, а нужно разбить по группам.
"Вывести одним циклом"
Конечно я могу так сделать. Но тогда получится что-то типа:
Возрастная группа до 20: Иванов
Возрастная группа до 45: Петорв
Возрастная группа от 50: Сидоров
Возрастная группа до 20: Пупкин
Возрастная группа от 50: Попов
и т.д.
А нужно вывести в таком формате:
Возрастная группа до 20: Иванов Пупкин
Возрастная группа до 45: Петорв Орлов Карпов
Возрастная группа от 50: Сидоров Попов (Добавление)
Оказалось все просто:
function age($i_)// "Возрастная группа до 20: ",age(0);
{
global$age;
foreach($age[$i_]as$key=>$value){
echo$key;
}
}
echo"Возрастная группа до 20: ",age(0);
echo"<br>Возрастная группа до 45: ",age(1);
echo"<br>Возрастная группа от 50: ",age(2);
Tyoma5891
Отправлено: 05 Февраля, 2015 - 21:11:53
Частый посетитель
Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013
Помог: 5 раз(а)
8Apollon8 пишет:
DelphinPRO пишет:
отсортировать с помощью usort
вывести одним циклом.
без всяких ваших age* функций
С помощью usort я отсортирую массив в порядке возрастания, а нужно разбить по группам.
"Вывести одним циклом"
Конечно я могу так сделать. Но тогда получится что-то типа:
Возрастная группа до 20: Иванов
Возрастная группа до 45: Петорв
Возрастная группа от 50: Сидоров
Возрастная группа до 20: Пупкин
Возрастная группа от 50: Попов
и т.д.
А нужно вывести в таком формате:
Возрастная группа до 20: Иванов Пупкин
Возрастная группа до 45: Петорв Орлов Карпов
Возрастная группа от 50: Сидоров Попов
вот так примерно с раздлениями полей не наводил красоту но суть такая
8Apollon8
Отправлено: 05 Февраля, 2015 - 21:19:59
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Февр. 2015
Помог: 0 раз(а)
Спасибо! Все еще проще чем я думал ) (Добавление)
8Apollon8 пишет:
Спасибо! Все еще проще чем я думал )
Но почему-то вышло так:
Ворастная до 20ИвановПупкин
Ворастная до 45ИвановПеторвПупкинОрловКарпов
Ворастная до 50СидоровПопов
А ведь Иванову с Пупкиным и 20 нет )))
Sail
Отправлено: 06 Февраля, 2015 - 08:05:36
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Покинул форум
Сообщений всего: 18
Дата рег-ции: Янв. 2015
Помог: 1 раз(а)
Ух стока вариантов, решай следующую задачу!Например:Задание: описать функцию используя "однопроходный алгоритм"(алгоритм, позволяющий получить требуемый результат после однократного просмотра набора исходных данных).
Есть одномерный массив, каждый элемент содержит числовую величину.
Найти среднее значение этой величины, не учитывая минимальные и максимальные значения.
Товарищи я тут 2+2 сложить хочу, подскажите какой самый правильный способ! Я новичек!
СтарожилСергей: все просто, ответ 4!!!
Вася: Воспользуйся калькулятором!
Марь Ивановна:Пусть Х=2, У=2, откуда Х+У=4, проверка 2+2=4
<ПогроммистPHP2015TuRbO> : Function Slojenie2plus2($A,$B){< Хитрый код>}
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.