КомпютриПрограмиране

PHP: масив в масива. Търсене в PHP масив

Програмиране - какъв е синтаксиса и семантиката. Първият се определя по правилата на езика, а втората - на опита на предприемача. По отношение на масиви разработчик може да се зареди с предмет семантика синтаксис. Това не е предмет, но не в традиционния смисъл на масива. PHP ви позволява да създадете масиви от променливи от различни типове, включително и себе си. елемент Масив може да бъде функция, е възможно да се зареди множество недвижими алгоритъм, реално значение.

Синтаксис е стабилен, но варира от версия до версия, и не винаги могат да бъдат съвместими, дори и от долу нагоре. Преносимост на програмите - добре забравени постижения на миналия век. Семантика се развиват и винаги може да бъде не прилагат само за всяка версия на всеки език; Тя се превърна в традиция да се използва синтаксис за изразяване на факта, че правилата на езика, дори при условие не е бил. В този пример, решетки могат да бъдат най-лесно разбрани.

Строителни комплекти

Масивът в PHP е удобен синтаксис и функционалност. Този тип данни може да се опише по-рано, но често е удобно да се създаде масиви в движение, както е необходимо.

обществен $ aNone = масив (); // масив е описано и не съдържа нищо

публичен $ AFACT = масив ( "авокадо", "праскова", "череша"); // този набор от три елемента

Създаване на масив от процеса на проверка на всякакви условия:

$ CSrcLine = 'низ анализира данни ";

за ($ аз = 0; $ аз <13; $ аз ++) {

$ CUserLine = inputUserLine (); // въвеждане на нещо

ако (checkFunc ($ cSrcLine, $ cUserLine) {

$ AResult [] = "Да"; // добавите PHP масив

} Друго {

$ AResult [] = "Не";

}

}

Като резултат от изпълнението на този пример, ще се създаде масив от 13 елемента, чиито стойности са само с "Да" или "Не" на линия. Елементи ще имат индекси от 0 до 12. Същият ефект може да се получи чрез предварително записано "бъдеще" PHP масив в низ:

$ CFutureArray = '';

за ($ аз = 0; $ аз <13; $ аз ++) {

$ CUserLine = inputUserLine (); // въвеждане на нещо

ако ($ i> 0) {$ cFutureArray = '|' .; }

ако (checkFunc ($ cSrcLine, $ cUserLine) {$ cFutureArray = "Да" .;

} Друго {$ cFutureArray = "Не" .; }

}

$ AResult = взривят ( '|', $ cFutureArray);

многомерни масиви

Много системи за управление на съдържанието (SMS) с използване на масиви "в голям мащаб." От една страна, това е добра практика, от друга страна, е трудно да се прилагат. Дори ако авторът е ясно учение "PHP масив в масива", а след това не трябва да се злоупотребява: не само на разработчика ще трябва да свикне с комплекс нотация. Често, след известно време самият автор дълго ще помни, това, което първоначално е написал:

върне масив (

"View_manager '=> масив (41," template_path_stack' => масив (__DIR__. /../view "),

"Път '=> масив (" маршрути' => масив ( "sayhello '=> масив (

"Тип '=>' Zend \ MVC \ Router \ Http \ Literal"

"Настройки" => масив ( "маршрут '=>' / sayhello ',' по подразбиране '=> масив (

=> '\ Контролер \ индекс HelloWorld "" контролер "," действие' => 'индекс "))))),

"контролери '=> масив (=' invokables"> масив (

"HelloWorld \ Controller \ Index '=>' HelloWorld \ Controller \ IndexController"))

);

Това е проба практика «PHP масив в масива" на ZF 2. Не много вдъхновяващо в началото, но тя работи, а може би прави тази успешна рамка (например от модул ZendSkeletonApplication / модул / HelloWorld / довереник / module.config.php).

Array - важна структура на данните по време на проектирането и разработването. Неговата версия многомерен някога е бил популярен, но с течение на времето остава необходимост от масиви от не повече от две или три измерения. Тя е по-лесно и по-интуитивно, но от гледна точка на професионализъм, когато нещо започва умножи, така че нещо при формулирането на проблема, или кодът не е така.

Обикновено, достъпен и разбираем

Създаване на PHP масив в масива, най-добре е да се ограничи до две или три нива. Въпреки стабилността и надеждността на PHP прави грешки в обработката на синтаксис. С това можете да толерираме имат добър редактор на код, свикнали с точното преброяване на скоби и запетаи. Въпреки това, PHP не контролира видовете данни (това е карма модерен програмиране) и позволява на разработчика да практикуват семантични грешки.

Правото да се контролира видовете променливи или свои собствени идеи за трансформация семантика в синтаксиса - често е лукс. Този процент загуба скрипт, четливостта на кода, лекота ... защото кодиране винаги е от съществено значение.

PHP има значителен негативен елемент: сценария просто виси в случай на несигурност. Не всички дебъгерите се справят с непредвидени събития, и много зависи от опита и интуицията на предприемача. Най-прост алгоритъм от структурирана информация по-достъпна, толкова повече шансове за намиране на грешка, или не го позволяват.

Характерно е, когато първите редици на опциите за данните бяха предложени в форма структури - несръчен опит да се създаде нещо от различни типове данни. Първият оцелели и са придобили мощен нов синтаксис, а вторият остава в историята и.

Лесни и асоциативни масиви

Запис на двумерен масив - е друг чифт скоби "[" и "]", например: $ aSrcData [1] [2] средства достъпа до елемент [2] от масив [1], въвеждане на масива $ aSrcData. В PHP, няма изискване за деклариране по-рано данни. Lyuboyu заяви информация винаги може да се провери за съществуване.

Много ефективно, за да се създаде нещо, само когато това е необходимо, във формата, в която е необходимо, и унищожени, когато вече не е необходимо. Използвайки като ключове (индекси) смислени имена, можете да получите по-четлив дизайн, смислено в контекста на сегашното си място в алгоритъма:

$ AAnketa [ 'име'] = 'Ivanov ";
$ AAnketa [ "възраст"] = 42;
$ AAnketa [ 'работа'] = 'Режисьор';
$ AAnketa [ "активно"] = вярно;
$ ATable [] = $ aAnketa;

$ AAnketa [ 'име'] = 'Петров ";
$ AAnketa [ "възраст"] = 34;
$ AAnketa [ "работа"] = 'мениджъра;
$ AAnketa [ "активно"] = вярно;
$ ATable [] = $ aAnketa;

$ AAnketa [ 'име'] = 'Афанасиев;
$ AAnketa [ "възраст"] = 28;
$ AAnketa [ 'работа'] = 'Работа';
$ AAnketa [ "активно"] = фалшива;
$ ATable [] = $ aAnketa;

$ Sone = свие. ( ";", $ ATable [1]). "
"; // втория PHP масив в низ
. $ Sone = $ aTable [1] [ "работа"]; // наричаме на един елемент от втория масив

Резултатът от този пример (първият масив - обичайните бутони в него започва с 0, втората наредба - асоциативната, има четири ключове: "име", "възраст", "работа", "активно"):

$ Sone = 'Петров; 34; мениджър; 1
мениджъра;

В този прост пример, може да се види как установен профил може да се прилага за всички служители. Можете да създавате множество служители с индекси на численост на персонала и ако се налага конкретен служител, а след това го изберете от броя на персонала.

Ако вашата организация има подразделения или имат сезонна работа, или ако искате да се разпределят отделно работещите пенсионери ... дизайн "PHP масив в масива" много удобно, но никога не трябва да се включват в размера. Две или три измерения - ограничението за ефективни разтвори.

Клавиши за работа с масиви

Ако преди имаше значение, как работят нещата, през последните години, традицията на двоичен ера, когато един програмист исках да знам точно как се съхраняват елементите на масива, и пожела да ги имат пряк достъп, напълно забравена. Имаше много на кодирания, които заемат в паметта не е един байт. Думата "малко", сега е възможно да се срещне с изключение на операциите на търсенето на малко, но търсенето на PHP масив - е отделен въпрос. Достъп до елементите може да бъде просто и асоциативен. В първия случай елементите на масив (имащи някои от PHP на наличните типове) са номерирани 0, 1, 2, ... Във втория случай, програмистът определя свой собствен индекс, често се споменава като "ключ" за достъп до желаната стойност.

$ Aline [ "плодове"] = "оранжево"; // тук PHP ключ масив = "плодове"

или (всичко, за да бъде вярна и в съответствие с код кодирането на страницата):

$ Aline [изброяване ( "UTF-8", "CP1251", "плодове")] = изброяване ( "UTF-8", "CP1251", "оранжево");

Когато добавяте към масив $ Aline новата стойност:

$ Aline [] = изброяване ( "UTF-8", "CP1251", "праскова");
$ Aline [изброяване ( "UTF-8", "CP1251", "растителен")] = изброяване ( "UTF-8", "CP1251", "краставица");
$ Aline [] = изброяване ( "UTF-8", "CP1251", "патладжан");

в резултат на цикъла:

foreach ($ Aline като $ СК => $ CV) {
$ Конус. = $ Ck. '='. $ Cv. "
";
}

Той се получава от:

оранжеви плодове =
0 = праскова
= Растително краставица
1 = патладжан

PHP ключ масив при добавянето на елементи "Праскова" и "патладжан" формира последователно от 0, а когато сте посочили нейната стойност ще бъде равна на тази стойност.

Премахване на елементи от масив

Най-лесният начин да се премахне елементът на PHP масив по време на обработката. В този случай, например, в резултат на цикъла на изпълнение, на изходния масив се гледа, и формира нова, която е просто ненужни елементи, които не са записани.

Можете да го направите по-лесно. Ако последният пример за използване:

изключено ($ Aline [0]); // премахване елемент PHP масив

резултатът ще бъде:

оранжеви плодове =
= Зеленчуци краставица
1 = патладжан

Възможности за манипулиране на елементите на масив могат да се изграждат набор. Например, използвайки функцията: свие () и се взривят (), могат да бъдат написани в PHP ред масив с един разделител, разглобява и обратно в друг масив - от друг сепаратор.

Просто да премахнете PHP масив като цяло, просто напишете: изключено ($ Алин);

Това е достатъчно.

Търсене в масива

PHP съдържа специална функция за търсене array_keys (), array_values (), array_key_exists (), и in_array (), но преди да решите да ги използвате, трябва да обмислят възможността да търсят в PHP масив по себе си.

Всеки проект има особена предметна област, предназначени масиви, особено когато част от семантиката премества в синтаксиса и представлява от набор от много конкретни смислени ключове. Тя ви позволява да извършвате своя собствена функция за търсене, която също може да се опише по значение.

В PHP, можете да се обадите на функцията, името на която се определя по време на изпълнението на програмата. А много практичен пример за PHPWord библиотека, която ви позволява да се чете и пише MS Word документи:

$ Elements = масив ( "Текст", "Пътека", "TextRun", "Връзка", "PreserveText", "TextBreak"
"Редовете", "ListItemRun", "Таблица", "Изображение", "Обект", "Бележка под линия",
"Endnote", "квадратчето", "TextBox", "Поле", "Line");

$ Функции = масив ();

за ($ аз = 0; $ аз <брой ($ елементи); $ аз ++) {
$ Функции [$ Ь] = 'добавят. $ Елементи [$ Ь];
}

В резултат на това редица функции от $ получават $ елементи ценности масиви, което е, имената на действителните функции, които изпълняват работата с реални елементи на документа.

Повикване за $ елементи [4] функция $ функции [4], можете да получите най-доброто търсене и бързи резултати.

Сортиране на предмети

сортиране задача данни е важна и PHP предоставя няколко функции за това: сортиране (), rsort (), asort (), ksort (), ... възходящ и низходящ елементи от последните две функции запази отношенията между ключове и стойности. Понякога има смисъл да се смесват стойностите на масива на случаен принцип - Разбъркване ().

Използване на функциите на PHP за сортиране, ние не трябва да забравяме, че членовете могат да имат не само различен тип, но не съвсем естествено съдържание. Първото нещо, което да бъдете много внимателни за сортиране низове, съдържащи руски букви, сортиране датите и числата, които са написани в различни формати.

Най-добрият начин да напишете свой собствен идеално решение, поне на етапа на тестване на сценария - е ръчно сортиране. Тя ще допринесе за осигуряване на непредвидени обстоятелства.

String масиви

С функции спуквам () и да експлодират () масив може лесно да се трансформира в низ и да се върнат. Тя ви позволява да съхранявате данните в компактен представителство и ги разположи в комфортна състояние, както е необходимо.

Array, с лице на линията ще открие нови възможности. Така например, задачата за търсене на ключови думи в текста изисква установено, че не е добавен отново.

$ CSrcLine = 'Текст Текст ListItemRun TextBox Редовете TextBox Проверете Box отметката TextBox Бележка под линия ";

$ ASrc = взривят ( '', $ cSrcLine);
$ CDstLine = '';

за ($ аз = 0; $ аз <брой ($ aSrc); $ аз ++) {
$ CFind = '['. $ ASrc [$ Ь]. "];
ако (! is_integer (strpos ($ cDstLine, $ cFind))) {
. $ CDstLine = $ cFind;
}
}
$ ADst = взривят ( '] [', $ cDstLine);

$ Конус = свие ( ";", $ aDst);

В резултат на това променлива $ КОНУСЕН получават само стойностите от оригиналните линии, които отговарят там веднъж: "Текст; ListItemRun; TextBox; Редовете; Проверете; Box; отметката; Бележка под линия".

Руски език в ключове и стойности

Не се препоръчва да се използва всичко, което е свързано с националните знаци в синтактични конструкции. Руски език, както и на всички други езици, на героите от които са извън AZ, няма да създаде проблем, който е в базата данни, но не и в код синтаксис. Понякога дори една проста задача за PHP «донесе масив от принтера или на екрана" би довело до "безсмислици" и често просто го спре.

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

PHP синтаксис и езикова среда

Имайте предвид, че PHP синтаксис - това, но дизайна на този синтаксис "сделка" с други приложения, операционната система с възможности за хардуер. Има много възможности, за да предостави цялата никога няма да бъде възможно.

Член "в кода има само кода и на входа, вътре и на изхода има някаква информация", ще помогне да се избегнат неочаквани изненади. PHP-стойност в масива може да бъде "Руски", но ключът към това е да бъде синтактично правилни, не само от гледна точка на езика, но и от гледна точка на работата му среда.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 bg.atomiyme.com. Theme powered by WordPress.