Сортиране на масив в PHP

Сортиране на масив в PHP

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

Сортиране на масив в PHP
Така сортиране по-лесно да се работи с масиви. Когато елементите са подредени, те са по-лесни за намиране и производство с тях необходимите действия, като тези, за които писах малко по-високо. Всичко зависи от задачата, която се изправи.

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

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

Да анализира образци на тези функции и да видим как те работят.

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

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

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

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

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

Тази функция се нарича rsort (). Тя работи по следния начин:

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

Мисля, че всичко е ясно с тези функции. Тествайте ги с техните масиви, и вие няма да имате никакви проблеми.

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

Както е известно, асоциативни масиви са ключове и стойности. Следователно, сортирането може да стане чрез ключ или стойност.

Нека започнем с ценностите на подобно.

За да сортирате стойностите на асоциативен масив, по азбучен ред, ние прилагаме asort (функция).

За да направите това, първо да създадете асоциативен масив, ние използваме функцията, показване на резултатите на екрана.

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

По същия начин се работи и arsort (функция). освен че сортира стойностите на асоциативен масив в обратен ред.

Тук отново виждаме, че стойностите на елементите на масива да останат във връзка с ключове, но сортирани в обратен ред.

Същата асоциативен масив, можем да сортирате и ключове.

Както вероятно вече сте предположили това може да бъде направено по азбучен или обратно.

За да сортирате масив по ключ в азбучен ред, ние се нуждаем () функция ksort.

Масивът се сортира по ключова по азбучен ред.

За да се справи масив от нейните ключове в обратен ред, се прилага функция krsort ().

Мисля, че снимката е ясно.

Можем също така да попитам и тяхното сортиране, не това е да създадете потребителски вид.

За да направите това в PHP имат специални функции.

За списък с персонализирана вид осигурява функция usort ().

Това ще отнеме два аргумента. Първият аргумент - това е нашата масив; втори аргумент - ще съдържа името на функцията, която сравнява два елемента.

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

1 - ако елементът първо сравнение е по-голяма от втората;

-1 - ако втората по-голяма от първата;

0 - ако елементите са равни.

Така, например, можем да сортирате елементите на масив в увеличаване на дължината им.

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

На следващо място, създаване на потребителска функция, която ще се вземат две променливи и сравни дължината им, в резултат на сравнението ще се върне една от стойностите 1, -1, или 0.

След това, ние използваме функцията за usort () обичай сортиране. Тя ще даде като аргументи: името на нашия масив, както и името на функцията, която сме създали за сравнение елементи.

След всичко това, можете да видите резултата на екрана, за да се уверите, нашите продукти са подредени във възходящ ред от тяхната дължина.

Ние се получи следния резултат. Елементите на нашия масив са сортирани по реда на увеличаване на дължината.

Можем също така да се направи по поръчка сортиране асоциативен масив от нейните ключове. За това ние трябва uksort () функция по себе си е асоциативен масив.

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

Ключове масив елементи сортирани във възходящ ред от тяхната дължина.

И също така ние можем да създадете потребителски сортиране асоциативен масив от стойностите на нейните елементи. Това ще ни помогне функция uasort ().

Принципът е един и същ.

Сега, масивът е сортиран чрез увеличаване на дължината на неговите ценности.

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

За да разберем как обичай сортирането, трябва да се практикува и се опитайте да напишете собствена функция за сравнение.

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

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