Контакти

Як перевірити наявність значення в масиві php. PHP: array_search - швидкий пошук по масиву Php пошук в масиві за значенням

Пошук значення в масиві потрібно практично в кожному PHP додатку, скрипті працюють з даними, для чого існує безліч способів і спеціальних функцій. Залежно від завдання і типу пошуку слід використовувати ті чи інші інструменти, враховуючи їх особливості, швидкість виконання і зручність в застосуванні. Далі ми ознайомимося з PHP функціями пошуку елементів в масиві, можливими конструкціями і методами, а також з'ясуємо який спосіб найбільш швидкий.

Функції для пошуку в масиві:
array_search - служить для пошуку значення в масиві. У разі успіху вона повертає ключ шуканого значення, якщо нічого не знайдено - повертає FALSE. До версії PHP 4.2.0, array_search () при невдачі повертала NULL, а не FALSE.

Синтаксис функції mixed array_search (mixed needle, array haystack [, bool strict]).

foreach (array_expression as $ value)
statement
foreach (array_expression as $ key \u003d\u003e $ value)
statement

Приклад використання функції з конструкцією foreach для пошуку елемента масиву, повертає TRUE при успішному здійсненні

синтаксис конструкції
while (expr)
statement

Повертає ключ елемента масиву при успіху

З наведеної таблиці вимірів видно, що функція array_search, Показує найкращий результат як при пошуку в малих так і великих масивах. При цьому час пошуку з допомогою циклів значно збільшується в залежності від розміру масиву.

(PHP 4\u003e \u003d 4.0.5, PHP 5)

array_search - Здійснює пошук даного значення в масиві і повертає відповідний ключ в разі успіху

опис

mixed array_search (Mixed needle, array haystack [, bool strict])

Шукає в haystack значення needle і повертає ключ, якщо таке присутнє в масиві, FALSE в іншому випадку.

зауваження: Якщо needle є рядком, проводиться до регістру залежне порівняння.

зауваження: До PHP 4.2.0, array_search () при невдачі повертала NULL замість FALSE .

Якщо ви передасте значення TRUE в якості необов'язкового третього параметра strict, функція array_search () також перевірить тип needle в масиві haystack.

Якщо needle присутній в haystack більше одного разу, буде повернуто перший знайдений ключ. Для того, щоб повернути ключі для всіх знайдених значень, використовуйте функцію array_keys () з необов'язковим параметром search_value.


Приклад 1. Приклад використання array_search ()

$ Array \u003d array (0 \u003d\u003e "blue", 1 \u003d\u003e "red", 2 \u003d\u003e 0x000000, 3 \u003d\u003e "green", 4 \u003d\u003e "red"); $ key \u003d array_search ( "red", $ array ); // $ key \u003d 1;
$ Key \u003d array_search ( "green", $ array); // $ key \u003d 2; (0x000000 \u003d\u003d 0 \u003d\u003d "green")
$ Key \u003d array_search ( "green", $ array, true); // $ key \u003d 3;
?>
Увага

Ця функція може повертати як логічне значення FALSE , Так і не відноситься до логічного типу значення, яке приводиться до FALSE , Наприклад, 0 або "". За більш детальною інформацією зверніться до розділу Булев тип. Використовуйте оператор \u003d\u003d\u003d для перевірки значення, що повертається цією функцією.

Одна з основних операцій при роботі з масивами - пошук конкретного значення. Для цього призначена функція PHP array_search (). Вона здатна обробляти як одномірні, так і асоціативні колекції, повертаючи ключ шуканого значення, якщо воно виявлено в масиві.

синтаксис

Формалізоване опис функції array_search () в PHP виглядає наступним чином:

Mixed array_search (mixed value, array $ collection [, bool strict])

Вхідні параметри:

  • $ Collection - масив, в якому буде проведений пошук;
  • value - шукане значення будь-якого типу;
  • strict - необов'язковий логічний прапор, який встановлює суворий механізм порівняння з урахуванням типів.

механізм роботи

Функція PHP array_search () по черзі порівнює value з усіма значеннями в масиві collection. За замовчуванням, порівняння здійснюється без урахування типів операндів. Цю настройку можна змінити, встановивши для прапора strict значення TRUE. Порівняння рядків здійснюється з урахуванням регістру.

При виявленні збігу повертається ключ, відповідний знайденому елементу, і робота функції припиняється. Отже, з її допомогою можна виявити множинне входження шуканого значення в масив.

Якщо збігів, не знайдено, функція поверне логічне значення FALSE.

Перевіряти повернутий результат слід за допомогою оператора суворого рівності (\u003d\u003d\u003d). Це важливо, тому що функція може повернути значення, яке приводиться до FALSE, наприклад, 0 або порожній рядок.

приклади використання

Приклад 1. При передачі у функцію PHP array_search () багатовимірного масиву, результатом роботи буде ключ шуканого елемента.

"Winter", "season2" \u003d\u003e "spring", "season3" \u003d\u003e "summer", "season4" \u003d\u003e "autumn"); $ Result1 \u003d array_search ( "winter", $ array); $ Result2 \u003d array_search ( "summer", $ array); $ Result3 \u003d array_search ( "april", $ array); ?\u003e

У цьому прикладі змінна $ result1 отримає значення "season1", $ result2 буде дорівнює "season3", а $ result3 буде присвоєно логічне значення FALSE, так як рядок "april" не зустрічається в вихідному масиві.

Приклад 2. Функція PHP array_search () може обробляти і одновимірний масив, вважаючи його ключі наступними по порядку числовими індексами.

Змінної $ result буде присвоєно значення 1, згідно з індексом елемента "мисливець" в масиві $ array.

Приклад 3. Можлива помилка при аналізі результату.

"Washington", 1 \u003d\u003e "Adams", 2 \u003d\u003e "Jefferson", 3 \u003d\u003e "Madison", 4 \u003d\u003e "Monroe"); $ Result \u003d array_search ( "Washington", $ presidents); if (! $ result) (echo "G. Washington was not the first president of the USA";)?\u003e

Ось так, не перевіряючи отриманий результат строгим рівністю, можна отримати несподіване повідомлення про те, що Джордж Вашингтон не був першим президентом Сполучених Штатів.

Приклад 4. Повертається тільки ключ першого виявленого збіги.

Незважаючи на те, що дані значення зустрічається в масиві тричі, функція поверне тільки перший знайдений результат - 0. Для пошуку множинних збігів рекомендується використовувати функцію PHP array_keys ().

Програмування - це синтаксис і семантика. Перше визначається правилами мови, друге - досвідом розробника. Відносно масивів розробник може предметно навантажити синтаксис семантикою. Це ще не об'єкт, але вже не масив в традиційному розумінні. PHP дає можливість створювати масиви з змінних різних типів, включаючи самих себе. Елементом масиву може бути функція, тобто можливість навантажити масив реальним алгоритмом, реальним змістом.

Синтаксис стабільний, але змінюється від версії до версії і не завжди може бути сумісним навіть від низу до верху. Переносимість програм - добре забуте досягнення минулого століття. Семантика розвивається і завжди може бути застосована не тільки в будь-якої версії будь-якої мови; стало традицією використовувати синтаксичні конструкції для вираження того, що правилами мови навіть передбачено не було. На прикладі масивів це можна зрозуміти найбільш просто.

конструювання масивів

Масив в PHP має зручний синтаксис і функціональність. Цей можна описати попередньо, але часто зручно створювати масиви на льоту в міру необхідності.

public $ aNone \u003d array (); // масив описаний і нічого не містить

public $ aFact \u003d array ( "авокадо", "персик", "вишня"); // в цьому масиві три елементи

Створення масиву в процесі перевірки будь-якої умови:

$ CSrcLine \u003d "рядок аналізованих даних";

for ($ i \u003d 0; $ i<13; $i++) {

if (checkFunc ($ cSrcLine, $ cUserLine) (

$ AResult \u003d "Yes"; // додати в масив PHP

$ AResult \u003d "No";

В результаті виконання даного прикладу створиться масив з 13 елементів, значеннями якого будуть тільки рядка "Yes" або "No". Елементи отримають індекси від 0 до 12. Той же ефект можна отримати, попередньо записавши "майбутній" PHP-масив в рядок:

$ CFutureArray \u003d "";

for ($ i \u003d 0; $ i<13; $i++) {

$ CUserLine \u003d inputUserLine (); // введення чогось

if ($ i\u003e 0) ($ cFutureArray. \u003d "|";)

if (checkFunc ($ cSrcLine, $ cUserLine) ($ cFutureArray. \u003d "Yes";

) Else ($ cFutureArray. \u003d "No";)

$ AResult \u003d explode ( "|", $ cFutureArray);

багатовимірні масиви

Багато системи управління сайтами (СМС) використовують масиви «з розмахом». З одного боку, це хороша практика, з іншого боку, це ускладнює застосування. Навіть якщо автору зрозуміла доктрина "PHP-масив в масиві", то не слід їй зловживати: не тільки розробнику доведеться звикати до складної нотації. Часто через час сам творець буде довго згадувати, що писав спочатку:

"View_manager" \u003d\u003e array (41, "template_path_stack" \u003d\u003e array (__ DIR__. "/../View",),

"Router" \u003d\u003e array ( "routes" \u003d\u003e array ( "sayhello" \u003d\u003e array (

"Type" \u003d\u003e "Zend \\ Mvc \\ Router \\ Http \\ Literal",

"Options" \u003d\u003e array ( "route" \u003d\u003e "/ sayhello", "defaults" \u003d\u003e array (

"Controller" \u003d\u003e "Helloworld \\ Controller \\ Index", "action" \u003d\u003e "index",))))),

"Controllers" \u003d\u003e array ( "invokables" \u003d\u003e array (

"Helloworld \\ Controller \\ Index" \u003d\u003e "Helloworld \\ Controller \\ IndexController"))

Це зразок практики «PHP-масив в масиві» від ZF 2. Не надто надихає спочатку, але це працює і, можливо, робить даний фреймворк успішним (приклад з модуля ZendSkeletonApplication / module / Helloworld / config / module.config.php).

Масив - важлива конструкція даних в ході проектування і розробки. Його багатовимірний варіант колись був популярний, але з плином часу залишилася потреба в масивах максимум двох-трьох розмірностей. Так простіше і зрозуміліше, а з точки зору професійності коли щось починає множиться, значить, щось в постановці завдання або в коді йде не так.

Просто, доступно і зрозуміло

Створюючи на php масив в масиві, найкраще обмежуватися двома-трьома рівнями. Незважаючи на стабільність і надійність PHP припускається помилок при обробці синтаксичних конструкцій. З цим миритися можна, маючи хороший редактор коду, звикнувши точно вважати дужки і коми. Однак PHP не контролює типи даних (це карма сучасного програмування) і дозволяє розробнику практикувати семантичні помилки.

Правило контролювати типи змінних або власні ідеї перетворення семантики в синтаксис - часто недозволена розкіш. Це втрата швидкості скрипта, читабельності коду, ... тому простота в кодуванні завжди має істотне значення.

У PHP є суттєва негативна риса: при виникненні невизначеності скрипт просто зависає. Не всі отладчики справляються з непередбаченими обставинами, і багато що залежить від досвіду і інтуїції розробника. Чим простіше алгоритм, чим доступніше структурована інформація, тим більше шансів знайти помилку або зовсім не допустити її.

Характерно, що коли з'явилися перші масиви, були запропоновані варіанти даних у вигляді структур - незграбна спроба створити щось з різних типів даних. Перші вижили і придбали новий ефективний синтаксис, другі пішли в історію.

Прості і асоціативні масиви

Запис двовимірного масиву - це ще одна пара дужок "[" і "]", наприклад: $ aSrcData означає звернення до елементу масиву, що входить в масив $ aSrcData. У PHP немає вимоги оголошувати заздалегідь дані. Любою заявлену інформацію завжди можна перевірити на предмет існування.

Дуже ефективно створювати щось тільки тоді, коли це потрібно, в тому вигляді, в якому воно було потрібно, і знищувати, коли в ньому зникла необхідність. Використовуючи в якості ключів (індексів) осмислені імена, можна отримати читабельні конструкції, осмислені в контексті поточного місця в алгоритмі:

$ AAnketa [ "name"] \u003d "Іванов";
$ AAnketa [ "age"] \u003d 42;
$ AAnketa [ "work"] \u003d "Директор";
$ AAnketa [ "active"] \u003d true;
$ ATable \u003d $ aAnketa;

$ AAnketa [ "name"] \u003d "Петров";
$ AAnketa [ "age"] \u003d 34;
$ AAnketa [ "work"] \u003d "Менеджер";
$ AAnketa [ "active"] \u003d true;
$ ATable \u003d $ aAnketa;

$ AAnketa [ "name"] \u003d "Афанасьєв";
$ AAnketa [ "age"] \u003d 28;
$ AAnketa [ "work"] \u003d "Робочий";
$ AAnketa [ "active"] \u003d false;
$ ATable \u003d $ aAnketa;

$ SOne. \u003d Implode ( ";", $ aTable). "
"; // другий PHP-масив в рядок
$ SOne. \u003d $ ATable [ "work"]; // звернення до одного елементу другого масиву

Результат роботи цього прикладу (перший масив - звичайний, ключі в ньому починаються з 0, другий масив - асоціативний, в ньому чотири ключа: "name", "age", "work", "active"):

$ SOne \u003d "Петров; 34; Менеджер; 1
Менеджер ";

На цьому простому прикладі можна бачити, як створена анкета може бути застосована до всіх співробітників. Можна створити масив співробітників з індексами по табельною номерами і, якщо потрібен буде конкретний співробітник, то вибрати його по табельної номером.

Якщо в організації є підрозділи, або є сезонні робітники, або потрібно окремо виділити працюючих пенсіонерів, ... конструкція "PHP-масив в масиві" дуже зручна, але ніколи не слід захоплюватися розмірністю. Два-три виміри - межа для ефективного вирішення.

Ключі для роботи з масивами

Якщо раніше мало значення, як все влаштовано, то в останні роки традиції бінарної епохи, коли програміст хотів знати, як саме зберігаються елементи масиву, і бажав мати до них прямий доступ, забулися остаточно. З'явилося багато кодувань символів, які займають в пам'яті далеко не один байт. Слово "біт" можна зустріти тепер хіба що в операціях битового пошуку, але пошук в масиві PHP - це окрема тема. Доступ до елементів може бути простим і асоціативним. У першому випадку елементи масиву (мають будь-який з доступних в PHP типів) нумеруються 0, 1, 2, ... У другому випадку програміст вказує власний індекс, іменований частіше "ключ" для доступу до потрібного значення.

$ ALine [ "фрукт"] \u003d "апельсин"; // тут PHP-ключ масиву \u003d "фрукт"

або (щоб все було коректно з дотриманням кодування сторінки і коду):

$ ALine \u003d iconv ( "UTF-8", "CP1251", "апельсин");

При додаванні до масиву $ aLine нового значення:

$ ALine \u003d iconv ( "UTF-8", "CP1251", "персик");
$ ALine \u003d iconv ( "UTF-8", "CP1251", "огірок");
$ ALine \u003d iconv ( "UTF-8", "CP1251", "баклажан");

в результаті виконання циклу:

foreach ($ aLine as $ ck \u003d\u003e $ cv) (
$ COne. \u003d $ Ck. "\u003d". $ Cv. "
";
}

буде отримано:

фрукт \u003d апельсин
0 \u003d персик
овоч \u003d огірок
1 \u003d баклажан

PHP-ключ масиву при додаванні елементів "персик" і "баклажан" формується послідовно від 0, а при вказуванні його значення буде дорівнює цьому значенню.

Видалення елементів з масиву

Найпростіше в ході його обробки. В цьому випадку, наприклад, в результаті виконання циклу, вихідний масив проглядається, і формується новий, в який непотрібні елементи просто не записуються.

Можна зробити простіше. Якщо до останнього наприклад застосувати:

unset ($ aLine); // видалити елемент масиву PHP

то результат буде:

фрукт \u003d апельсин
овоч \u003d огірок
1 \u003d баклажан

Варіантів маніпулювання елементами масивів можна сконструювати безліч. Наприклад, використовуючи функції: implode () і explode (), можна записати PHP-масив в рядок з одним роздільником, а розібрати назад в інший масив - по іншому разделителю.

Щоб просто на PHP видалити масив цілком, досить написати: unset ($ aLine);

Цього достатньо.

Пошук в масиві

PHP містить спеціальні функції пошуку і in_array (), однак перш ніж вирішити їх використовувати, слід розглянути можливість виконати пошук в масиві PHP власними силами.

Будь-який проект є конкретна сконструйовані масиви, особливо коли частина семантики перенесена в синтаксис і представлена \u200b\u200bнабором цілком конкретних осмислених ключів. Це дозволяє виконувати власні функції пошуку, які також можна позначити осмислено.

В PHP можна викликати функції, ім'я яких визначається в ході виконання програми. Дуже практичний приклад з бібліотеки PHPWord, яка дозволяє читати і створювати документи MS Word:

$ Elements \u003d array ( "Text", "Inline", "TextRun", "Link", "PreserveText", "TextBreak",
"ListItem", "ListItemRun", "Table", "Image", "Object", "Footnote",
"Endnote", "CheckBox", "TextBox", "Field", "Line");

$ Functions \u003d array ();

for ($ i \u003d 0; $ i< count($elements); $i++) {
$ Functions [$ i] \u003d "add". $ Elements [$ i];
}

В результаті масив $ functions отримає значення масиву $ elements, тобто імена реальних функцій, які виконують роботу з реальними елементами документа.

Викликаючи для $ elements функцію $ functions, можна отримати ідеальний пошук і швидкий результат.

Сортування елементів

Завдання сортування даних має важливе значення, і PHP пропонує кілька функцій для цього: sort (), rsort (), asort (), ksort (), ... За зростанням і спаданням елементів другі дві функції зберігають відносини між ключами і значеннями. Іноді має сенс перемішати значення масиву випадковим чином - shuffle ().

Використовуючи функції PHP для сортування, не слід забувати, що елементи можуть мати не тільки різний тип, але і не зовсім природний вміст. В першу чергу потрібно дуже уважно ставитися до сортування рядків, що містять російські букви, сортуванні дати, а також чисел, які записані в різних форматах.

Кращий спосіб написати самостійно ідеальне рішення, в усякому разі на етапі тестування скрипта, - це ручне сортування. Вона допоможе передбачити непередбачені ситуації.

рядкові масиви

Завдяки функціям implode () і explode () масив можна легко трансформувати в рядок і отримати назад. Це дозволяє зберігати дані в компактному поданні і розгортати їх у зручний стан у міру потреби.

Масив, звернений в рядок, відкриває нові можливості. Наприклад, завдання пошуку ключових слів у тексті вимагає того, щоб знайдене не додають повторно.

$ CSrcLine \u003d "Text Text ListItemRun TextBox ListItem TextBox Check Box CheckBox TextBox Footnote";

$ ASrc \u003d explode ( "", $ cSrcLine);
$ CDstLine \u003d "";

for ($ i \u003d 0; $ i< count($aSrc); $i++) {
$ CFind \u003d "[". $ ASrc [$ i]. "]";
if (! is_integer (strpos ($ cDstLine, $ cFind))) (
$ CDstLine. \u003d $ CFind;
}
}
$ ADst \u003d explode ( "] [", $ cDstLine);

$ COne \u003d implode ( ";", $ aDst);

В результаті змінна $ cOne отримає тільки ті значення з початкового рядка, які там зустрічаються по одному разу: "Text; ListItemRun; TextBox; ListItem; Check; Box; CheckBox; Footnote".

Російська мова в ключах і значеннях

Не рекомендується використовувати нічого, що пов'язано з національними кодуваннями, в синтаксичних конструкціях. Російська мова, як і всі інші мови, символи яких виходять за межі a-z, не створюватиме проблем, перебуваючи в області даних, але не в синтаксисі коду. Іноді навіть просте завдання на PHP «вивести масив на принтер або на екран» призведе до "кракозябрами", а частіше просто зупинить скрипт.

PHP - лояльний мову і терпимо ставиться до національних кодувань, але існує маса ситуацій, коли виконаний обсяг робіт доводиться робити повторно тільки тому, що в потрібному місці і в потрібний час вискочить ключове значення, розпізнати яке буде неможливо.

Синтаксис PHP і оточення мови

Слід пам'ятати, що синтаксис PHP - це одне, але конструкції цього синтаксису «мають справу» з іншими додатками, з операційною системою, з апаратними опціями. Варіантів багато, передбачити все ніколи не представляється можливим.

Правило «в коді є тільки код, а на вході, всередині, і на виході є будь-яка інформація» допоможе уникнути непередбачених несподіванок. PHP-значення в масиві може бути «російським», але ключ на нього повинен бути синтаксично коректним не тільки з позицій даного мови, а й з позицій середовища його роботи.

Я вже досить довго використовую функцію array_search () для пошуку значень в масиві, так як неодноразово чув і читав про те, що вона працює помітно швидше, ніж пошук по масиву в циклі, але наскільки вона швидше - не знав. Нарешті дійшли руки самому перевірити і порахувати.

Порівняв швидкість пошуку в масиві за допомогою цієї функції зі звичайним перебором масиву в циклах foreach і while. На 10-100 елементах масиву різниця непомітна та й час настільки мало, що їм можна знехтувати. А ось для великих масивів різниця виявилася дуже істотною. Зі збільшенням розміру масиву на порядок, значно збільшувалася і час пошуку. При ста тисячах елементів швидкість foreach падала до 0,013 секунди, а while - до 0,017, при тому що array_search () теж сповільнилося, але все-таки залишився на порядок швидше - 0.004 секунди. Для великого скрипта, який працює з великими масивами заміна пошуку в циклі на пошук за допомогою array_search () буде зовсім не «блошиних оптимізацією».

У зв'язку з цим згадав недавню дискусію з одним з колег на роботі - щодо того, чи потрібно програмісту знати всі ці вбудовані функції мови, або досить «програміста менталітету» і загальних знань. Не вдаючись з міркування про це самому менталітеті, думаю, що все-таки знати функції треба, може бути не весь синтаксис в деталях, а хоча-б якісь функції є і що вони в загальних рисах можуть.

UPD: потрібен програмістський склад розуму, теж потрібен! І уважність з пам'яттю не завадять (навіяно break і range :)

Під хабракатом код скрипта, яким підраховував час:

$ Mass \u003d 100000; // число значень в масиві в якому будемо шукати
$ Search \u003d 50000; // в масиві будемо шукати це значення
$ First_result \u003d array (); // масив результатів, для обчислення середнього значення першого варіанту
$ Second_result \u003d array (); // масив результатів, для обчислення середнього значення другого варіанту
$ Third_result \u003d array (); // масив результатів, для обчислення середнього значення третього варіанту

// створюємо і наповнюємо масив
$ Test_array \u003d range (0, $ mass-1); // спасибі SelenIT))

/*
$ Test_array \u003d array ();
for ($ i \u003d 0; $ i<$mass; $i++)
{
$ Test_array \u003d $ i;
}
*/

// цикл для підрахунку середніх значень
for ($ d \u003d 0; $ d<30; $d++) {

// *************** Пошук за допомогою array_search *******************

// Запускаємо підрахунок часу
$ Time_start \u003d microtime (1);
// пошук
$ Key \u003d array_search ($ search, $ test_array, true);
// якщо знайшли
if ($ key! \u003d\u003d FALSE) // треба саме! \u003d\u003d а не! \u003d, адже номер першого елемента - 0
{
echo $ test_array [$ key];
}
$ Time_end \u003d microtime (1);
// кінець підрахунку часу

// пишемо в масив значень
$ First_result \u003d $ time_end - $ time_start;

// *************** Пошук по масиву з циклом foreach *******************

// Запускаємо підрахунок часу
$ Time_start \u003d microtime (1);
// сам пошук
foreach ($ test_array as $ ta)
{
if ($ ta \u003d\u003d $ search)
{
echo $ ta;
break;
}
}
$ Time_end \u003d microtime (1);
// кінець підрахунку часу

// пишемо в масив значень
$ Second_result \u003d $ time_end - $ time_start;

// *************** Пошук по масиву з циклом while *******************

// Запускаємо підрахунок часу
$ Time_start \u003d microtime (1);

// визначаємо довжину масиву
$ Count \u003d count ($ test_array);
$ J \u003d 0;
// сам пошук
while ($ j<$count)
{
if ($ test_array [$ j] \u003d\u003d $ search) // якщо знайшли
{
echo $ test_array [$ j];
break;
}
$ J ++;
}
$ Time_end \u003d microtime (1);
// кінець підрахунку часу

// пишемо в масив значень
$ Third_result \u003d $ time_end - $ time_start;
}

$ Srednee1 \u003d array_sum ($ first_result) / count ($ first_result);
$ Srednee2 \u003d array_sum ($ second_result) / count ($ second_result);
$ Srednee3 \u003d array_sum ($ third_result) / count ($ third_result);

Printf ( "перший код виконаний в середньому за:% .7f секунди", $ srednee1);
printf ( "другий код виконаний в середньому за:% .7f секунди", $ srednee2);
printf ( "третій код виконаний в середньому за:% .7f секунди", $ srednee3);

// результат:
// перший код виконаний в середньому за: 0.0000295 секунди
// другий код виконаний в середньому за: 0.0153386 секунди
// третій код виконаний в середньому за: 0.0226001 секунди



Сподобалася стаття? поділіться їй