[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка массива
Bezdna
Надеюсь кто-нибудь поможет в элементарной задаче, на которую у меня не хватает соображалки.

Существует массив числовых данных. Значения массива - беспорядочные и общее количество их неизвестно. Приблизительно так:


array(1, 2, 6, 1, 15, 2, 6, 19, 22, 4, 56)



Нужно массив разделить на три, где, соответственно, будут значения от 0 до 10, от 11 до 20 и - все остальные, т.е. так:


array(1, 2, 6, 1, 2, 6, 4);
array(15, 19);
array(22,56);



Буду благодарен за любой пинок в нужном направлении.
killer8080
 $a = array(1, 2, 6, 1, 15, 2, 6, 19, 22, 4, 56);

$res = [];
foreach ($a as $v) {
if ($v <= 10) {
$res[0][] = $v;
} elseif ($v <= 20) {
$res[1][] = $v;
} else {
$res[2][] = $v;
}
}

print_r($res);
Bezdna
А ларчик просто открывался.
FatCat
Цитата (killer8080 @ 15.11.2020 - 22:42)
if ($v <= 10)

А это не 2 действия для сервера?
Я обычно делаю:
if ($v < 11)


_____________
Бесплатному сыру в дырки не заглядывают...
brevis
FatCat, ты настоящий романтик smile.gif

P.S. IS_SMALLER / IS_SMALLER_OR_EQUAL

_____________
Чатик в телеге
killer8080
Цитата (FatCat @ 17.11.2020 - 02:05)
А это не 2 действия для сервера?
Я обычно делаю:
if ($v < 11)

это такой мизер, что тут не о чем рассуждать rolleyes.gif
https://glot.io/snippets/ft5j9nz7kg
FatCat
Цитата (killer8080 @ 17.11.2020 - 23:39)
мизер

Это привычка не давать лишнюю нагрузку.

_____________
Бесплатному сыру в дырки не заглядывают...
Guest
FatCat,

В микропроцессорах начиная с Intel 8086 выпущенного в 1978 году, для сравнения сущесвуют инструкции группы Jcc (Jump if condition). В их числе есть JLE (Jump if Less or Equal) и JL (Jump if Less). Что так что эдак одна инструкция. Соответственно, между IS_SMALLER и IS_SMALLER_OR_EQUAL в конечном итоге разницы тоже скорее всего нет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.