download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

PHP: Записване по колко пъти се повтаря число - как най-елегантно?

Автор
Съобщение
programings
Сря, 05.06.13, 16:58
Взимам числа от API-то на random.org - http://www.random.org/integers/?num=1&min=1&max=100&col=1&base=10&format=plain&rnd=new
Да речем от 1 до 100.
Взимам 100 числа (поотделно, а не направо 100 числа наведнъж да дърпам от API-то), и след това извеждам в таблица всяко число от 1 до 100 по колко пъти се повтаря.
Въпросът е как да се реализира по-горното възможно най-елегантно, кодът да е бърз и оптимизиран?

Естествено, глупаво е за всяко едно число от 1 до 100 да се прави проверка дали е идентично с текущото взето от API-то в цикъла, и да се добавя единица съответно към някаква променлива, която да съдържа броя излизания на числото за 100 опита.

Търся по-елегантен вариант.

Знам, че мога да взема 100 числа наведнъж от API-то, и така ще е по-лесно, но целта ми е числата да се взимат едно по едно в цикъл.

Благодаря предварително!

phrozencrew
Сря, 05.06.13, 19:07
PHP разполага с готова функция за това:
array_count_values

Ако искаш, ще ти напиша примерче.

programings
Сря, 05.06.13, 19:53
А, мерси Недялко.
Стана ми ясно. Не я знаех тази функция.

Написах го, но по този начин е прекалено бавно:
<?php
$array = array();
for ($i=0; $i<=10; $i++) {
// задължително с int тип, защото връща text/plain
$number = (int) file_get_contents("http://www.random.org/integers/?num=1&min=1&max=100&col=1&base=10&format=plain&rnd=new");
array_push($array, $number);
}
print_r(array_count_values($array));
?>

Е, то до една степен зависи от API-то, но може ли по някакъв начин скрипта да се оптимизира така, че да не се усеща толкова бавното API ?
Нарочно не извеждам резултата в таблица, защото се страхувам, че ще стане прекалено бавно.

Като идея имам в предвид да го използвам конзолно под Linux с CRON като записвам резултата вместо в таблица, то да го правя в един txt файл на сървъра за по-късно преглеждане, ама като го гледам колко е бавно, май взимам да се отказвам.

Цикъла е на 10, защото ако го сложа на 100, направо минава зададеният по подразбиране execution time на PHP.
Толкова е бавно.

редактиран от programings на 05.06.13 19:53
редактиран от programings на 05.06.13 19:59
редактиран от programings на 05.06.13 20:01
редактиран от programings на 05.06.13 20:02
insecteater
Чет, 06.06.13, 15:23

RE: PHP: Записване по колко пъти се повтаря число - как най-елегантно?

” ...
Цикъла е на 10, защото ако го сложа на 100, направо минава зададеният по подразбиране execution time на PHP.... „

set_time_limit на всяка итерация не ти ли върши работа? Или PHP-то ти е в safe_mode ??

programings
Чет, 06.06.13, 16:02
В safe_mode е. По-точно не моето на локалният ми сървър, а това на хостинга.

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.