сортировка массива php ΠΏΠΎ количСству элСмСнтов

Как ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы Π² PHP

Russian (Pусский) translation by Pembelight (you can also view the original English article)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ всСгда Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ· отсортированных Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ случаС Π²Π°ΠΌ приходится ΠΏΠ΅Ρ€Π΅ΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΈΜ† элСмСнт массива. НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса Π² массивС ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Если Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ отсортированы ΠΏΠΎ ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ учащСгося, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΡΠ°ΠΌΡƒΡŽ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΈΠ»ΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΌΡƒΡŽ Π½ΠΈΠ·ΠΊΡƒΡŽ. Если Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ отсортированы ΠΎΡ‚ самой Π½ΠΈΠ·ΠΊΠΎΠΈΜ† ΠΊ Π±ΠΎΠ»Π΅Π΅ высокой, Ρ‚ΠΎ просто взглянув Π½Π° ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π½Π°Ρ‚ΡŒ этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ простых ΠΈ Π΅Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π½Π° основС доступа ΠΈΠ»ΠΈ получСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PHP для сортировки Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² массивов.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ

Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ быстро ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ всСми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ сортировки.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΈΜ† сортировки числовыС строки ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² ΠΈΡ… числовыС значСния, ΠΈ сортировка выполняСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π‘Ρ‚Ρ€ΠΎΠΊΠ° Β«AppleΒ» Π½Π΅ являСтся числовой, поэтому ΠΎΠ½Π° остаСтся Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΠΎΠΈΜ† ΠΈ сравниваСтся ΠΊΠ°ΠΊ строка.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ наводится числовая сортировка, ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ ΠΏΠΎ числовому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, поэтому Β«AppleΒ» прСобразуСтся Π² числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 ΠΈ ΠΈΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ значСния отсортированы ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ассоциативных массивов

Ассоциации ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈΜ† Π²Π°ΠΆΠ½Ρ‹, Π² случаС Ссли Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ с ассоциативными массивами. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΈΜ† ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ ассоциативный массив ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния ΠΈΠΌΠ΅Π½ Ρ€Π°Π·Π½Ρ‹Ρ… Π»ΡŽΠ΄Π΅ΠΈΜ† ΠΈ ΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Ρ„Ρ€ΡƒΠΊΡ‚ΠΎΠ². Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС ΠΏΠΎ названию Ρ„Ρ€ΡƒΠΊΡ‚ΠΎΠ², использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sort() ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ассоциативных ΠΊΠ»ΡŽΡ‡Π΅ΠΈΜ†.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΡ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ потСряли взаимосвязь ΠΌΠ΅ΠΆΠ΄Ρƒ людьми ΠΈ ΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌΠΈ Ρ„Ρ€ΡƒΠΊΡ‚Π°ΠΌΠΈ, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ потСряли ΠΈΠΌΠ΅Π½Π° этих Π»ΡŽΠ΄Π΅ΠΈΜ†. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ отсортированному Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π±Ρ‹Π» присвоСн Π½ΠΎΠ²Ρ‹ΠΈΜ† числовой индСкс, основанный Π½Π° Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² отсортированном массивС.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° элСмСнтов массива ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΜ†

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈΜ† вашим потрСбностям ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки. Однако ΠΈΠ½ΠΎΠ³Π΄Π° ваши ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ сравнСния элСмСнтов массива ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Допустим, Ρƒ вас Π΅ΡΡ‚ΡŒ массив случайных слов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ. Но ΠΏΠ΅Ρ€Π΅Π΄ этим Π²Ρ‹ Π΅Ρ‰Π΅Μˆ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡ… ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅. НапримСр, Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΈΜ† Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΈΜ† сортировкС zoo Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° apple. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΈΜ† стороны, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ сначала ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ слова, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅, Ρ‚ΠΎ zoo появится ΠΏΠ΅Ρ€Π΅Π΄ apple. Π’ Ρ‚ΠΎΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€Π΅ Π±ΡƒΠΊΠ², ape Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ zoo ΠΈΠ·-Π·Π° Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠ³ΠΎ порядка.

Π’ основном, слова сначала ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ слова с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ количСством Π±ΡƒΠΊΠ² ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… своСй Π³Ρ€ΡƒΠΏΠΏΡ‹. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ сортировки Π½Π΅ встроСн Π² PHP, поэтому Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Для Ρ‚Π°ΠΊΠΈΡ… случаСв PHP прСдоставляСт Π²Π°ΠΌ ΠΏΠ°Ρ€Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΜ†, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ массива, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΈΜ† сортировкС, вмСстС с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π°ΡˆΠ΅ΠΈΜ† собствСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΈΜ†Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ usort() для сортировки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈΜ† массива Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… массивах. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ uasort() для сортировки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈΜ† Π² ассоциативных массивах, сохраняя ΠΏΡ€ΠΈ этом ассоциаций ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈΜ†.

Π­Ρ‚ΠΎΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов выполнСния Π΄Π°Π½Π½ΠΎΠΈΜ† сортировки.

Π’ функциях ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΈΜ† сортировки, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число мСньшС 0, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСньшС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. Если ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ, возвращаСтся 0. Если ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, возвращаСтся Ρ†Π΅Π»ΠΎΠ΅ число большС 0.

Как Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ наша ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция сортировки пСрСставляСт слова Π² точности Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ

Π’ΠΎΡ‚ основной ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сортировки:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ названия стран ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΠΈΡ… названия, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ, ΠΌΡ‹ использовали ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сортировки ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Π² PHP

Π’ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Ρ‡Π°Ρ‰Π΅ всСго ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΈΜ† ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΈΜ†. НапримСр, ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ завСдСния Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌ всСх учащихся Π² ΠΎΠ΄Π½ΠΎΠΈΜ† Ρ‚Π°Π±Π»ΠΈΡ†Π΅ вмСсто создания Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°. Если Π²Π°ΠΌ понадобилось Π±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² PHP, Π²Ρ‹ Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΈΜ† ΠΏΠΎΠ΄Ρ…ΠΎΠ΄,Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΈΜ† массив вмСсто ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ массива для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°.

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ научимся ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΈΜ† массив, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° список самых высоких Π·Π΄Π°Π½ΠΈΠΈΜ† Π² ΠΌΠΈΡ€Π΅. Наш массив Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π·Π΄Π°Π½ΠΈΠΈ: Π½Π°Π·Π²Π°Π½ΠΈΠ΅, мСсторасполоТСниС (Π³ΠΎΡ€ΠΎΠ΄, страна), количСство этаТСй, общая высота Π² ΠΌΠ΅Ρ‚Ρ€Π°Ρ…, Π³ΠΎΠ΄ постройки.

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΌΡ‹ просто ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ основной массив ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π΄Π°Π½ΠΈΠΈ.

ПослСсловиС

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массивов Π² php: ksort, asort ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ sort’Ρ‹

ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ сортировкС массивов.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ функциям сортировки.

Допустим Ρƒ нас Π΅ΡΡ‚ΡŒ массив

Он Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ отсортирован, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ (1,2,3) ΠΈ значСния (Π²ΠΈΠ½ΠΎΠ³Ρ€Π°Π΄, Π°Ρ€Π±ΡƒΠ·, Π±Π°Π½Π°Π½) ΠΈΠ΄ΡƒΡ‚ Π½Π΅ ΠΏΠΎ порядку. Π”Π°Π²Π°ΠΉΡ‚Π΅ это исправим:

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ

Π‘Π²ΠΎΠΈ способы сортировки

Если ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ способы сортировки Π²Π°ΠΌ Π½Π΅ подходят, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой способ сортировки ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массивов. Для этого Π΅ΡΡ‚ΡŒ 3 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ uasort, uksort ΠΈ usort. Π‘ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ свою callback Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ элСмСнты ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… «Π±ΠΎΠ»ΡŒΡˆΠ΅» ΠΈ ΠΊΠ°ΠΊΠΎΠΉ «ΠΌΠ΅Π½ΡŒΡˆΠ΅».

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ uasort, которая сравниваСт значСния с сохранСниСм ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΊΠ°ΠΊ Π±Ρ‹ привязан ΠΊ своСму Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

Если сортировка Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‚ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Ρ„Π»Π°Π³ΠΈ сортировки. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ сортировки SORT_REGULAR

Π€Π»Π°Π³ΠΈ Ρ‚ΠΈΠΏΠ° сортировки:

Π€Π»Π°Π³ сортировки пСрСдаСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сортировки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ:

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² сортировкС массивов

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_orderby() :

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ совсСм ΡƒΠΆ спСцифичСскоС ΠΏΡ€ΠΈ сортировки ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ callback Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π½Π° «ΡΡ‚Π΅Ρ€ΠΎΠΈΠ΄Π°Ρ…»

Часто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с массивами? Π’ΠΎΠ³Π΄Π° Π²Π°ΠΌ понравится это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями.

Рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

ΠŸΡ€ΠΎΡΡ‚Π°Ρ сортировка чисСл:

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ «ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅» ассоциативного массива:

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ нСскольким Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с коллСкциями:

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с массивами ΠΊΠ°ΠΊ Π² Laravel ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ этого Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ инструмСнта Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ сортировкой.

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ Π²Ρ‹ Π²Π»ΡŽΠ±ΠΈΡ‚Π΅ΡΡŒ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

array_multisort

(PHP 4, PHP 5, PHP 7, PHP 8)

array_multisort β€” Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ нСсколько массивов ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

ОписаниС

Ѐункция array_multisort() ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для сортировки сразу Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… массивов ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива Π² соотвСтствии с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ нСсколькими размСрностями.

АссоциативныС ( string ) ΠΊΠ»ΡŽΡ‡ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ сохранСны, Π½ΠΎ числовыС ΠΊΠ»ΡŽΡ‡ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ пСрСиндСксированы.

Если ΠΎΠ±Π° сравниваСмых значСния эквивалСнтны, ΠΎΠ½ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ свой ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ порядок. Π”ΠΎ PHP 8.0.0 ΠΈΡ… ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ порядок Π² отсортированном массивС Π½Π΅ Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ массив ( array ).

Настройки сортировки для Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° array :

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ массивы, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ послС порядка сортировки ΠΈ Ρ„Π»Π°Π³ΠΎΠ². Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнты ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ элСмСнтам Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… массивах. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, производится сортировка Π² лСксикографичСском порядкС.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния ΠΈΠ»ΠΈ false Π² случаС возникновСния ошибки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… массивов

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива

Π’ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, послС сортировки, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ массив Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ «10», 100, 100, 11, «a» (Π΅Π³ΠΎ элСмСнты Π±Ρ‹Π»ΠΈ отсортированы Π² Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΌ порядкС), Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ массив Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 1, 3, «2», 2, 1 (элСмСнты отсортированы ΠΊΠ°ΠΊ числа, Π² порядкС убывания).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #3 Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива data прСдставляСт собой ряд Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΈΡ‡Π΅Π½ для записСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π£ нас Π΅ΡΡ‚ΡŒ массив строк, Π½ΠΎ array_multisort() Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ массив столбцов, поэтому сначала ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ для получСния столбцов, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ сортировку.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ отсортированы ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #4 Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра

ОбС константы SORT_STRING ΠΈ SORT_REGULAR ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ рСгистр ΠΏΡ€ΠΈ сортировкС, строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ выставлСны Ρ€Π°Π½ΡŒΡˆΠ΅ строк, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ со строчной Π±ΡƒΠΊΠ²Ρ‹.

Для выполнСния рСгистронСзависимой сортировки, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ копию исходного массива ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΡƒΡŽ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ рСгистру.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

User Contributed Notes 39 notes

I came up with an easy way to sort database-style results. This does what example 3 does, except it takes care of creating those intermediate arrays for you before passing control on to array_multisort().

I would like to see the next code snippet to be added to http://nl3.php.net/array_multisort

Purpose: Sort a 2-dimensional array on some key(s)

Advantage of function:
— uses PHP’s array_multisort function for sorting;
— it prepares the arrays (needed by array_multisort) for you;
— allows the sort criteria be passed as a separate array (It is possible to use sort order and flags.);
— easy to set/overwrite the way strings are sorted (case insensitive instead of case sensitive, which is PHP’s default way of sorting);
— performs excellent

//Set the sort criteria (add as many fields as you want)
$sortCriteria =
array(‘field1’ => array(SORT_DESC, SORT_NUMERIC),
‘field3’ => array(SORT_DESC, SORT_NUMERIC)
);

A more inuitive way of sorting multidimensional arrays using array_msort() in just one line, you don’t have to divide the original array into per-column-arrays:

arr1 :
0 :
id : 1 (int)
name : aA ( string : 2 )
cat : cc ( string : 2 )
1 :
id : 2 (int)
name : aa ( string : 2 )
cat : dd ( string : 2 )
2 :
id : 3 (int)
name : bb ( string : 2 )
cat : cc ( string : 2 )
3 :
id : 4 (int)
name : bb ( string : 2 )
cat : dd ( string : 2 )
arr2 :
2 :
id : 3 (int)
name : bb ( string : 2 )
cat : cc ( string : 2 )
3 :
id : 4 (int)
name : bb ( string : 2 )
cat : dd ( string : 2 )
0 :
id : 1 (int)
name : aA ( string : 2 )
cat : cc ( string : 2 )
1 :
id : 2 (int)
name : aa ( string : 2 )
cat : dd ( string : 2 )

One-liner function to sort multidimensionnal array by key, thank’s to array_column

USort function can be used to sort multidimensional arrays with almost no work whatsoever by using the individual values within the custom sort function.

This function passes the entire child element even if it is not a string. If it is an array, as would be the case in multidimensional arrays, it will pass the whole child array as one parameter.

Therefore, do something elegant like this:

Easiest way I find out to sort an entire multidimensional array by one element of it:

This is the simpler version of the function by AlberT.

A lot of times you have got an array like this:

You just want to sort on the index in the second dimension, ie. on points in the above example.

You can use the function below and call it like this:

I had a function to make a sort on a 2D array and I wanted to sort an array using a column that usualy contains numeric values but also strings.

Lets say we have this array :

Array (
[0] => Array ( «name» = «12000» ),
[1] => Array ( «name» = «113» ),
[2] => Array ( «name» = «test 01» ),
[3] => Array ( «name» = «15000 tests» ),
[4] => Array ( «name» = «45» ),
[5] => Array ( «name» = «350» ),
[6] => Array ( «name» = «725» ),
[7] => Array ( «name» = «hello» )
>

SORT_STRING whould have returned me this :

Array ( // Numeric values are not correctly sorted
[0] => Array ( «name» = «113» ),
[1] => Array ( «name» = «12000» ),
[2] => Array ( «name» = «15000 tests» ),
[3] => Array ( «name» = «350» ),
[4] => Array ( «name» = «45» ),
[5] => Array ( «name» = «725» ),
[6] => Array ( «name» = «hello» ),
[7] => Array ( «name» = «test 01» )
>

SORT_NUMERIC would have returned me this :

Array ( // String values are not sorted, just in the same order
[0] => Array ( «name» = «test 01» ),
[1] => Array ( «name» = «hello» ),
[2] => Array ( «name» = «45» ),
[3] => Array ( «name» = «113» ),
[4] => Array ( «name» = «350» ),
[5] => Array ( «name» = «725» ),
[6] => Array ( «name» = «12000» ),
[7] => Array ( «name» = «15000 tests» ),
>

So I’ve made this hybrid code which combines the best of both worlds by merging content sorted either way according to the first caracter of the string:

Array (
[2] => Array ( «name» = «45» ),
[3] => Array ( «name» = «113» ),
[4] => Array ( «name» = «350» ),
[5] => Array ( «name» = «725» ),
[6] => Array ( «name» = «12000» ),
[7] => Array ( «name» = «15000 tests» ),
[1] => Array ( «name» = «hello» ),
[0] => Array ( «name» = «test 01» ),
>

A very simple way to sort an array of associative arrays by some value is to use usort.

I needed to sort an array of 20 data structures by their ‘distance’ value:

Array
(
[0] => Array
(
[blahblah] => blahblah
[distance] => 6
)

[1] => Array
(
you get the idea.

If you do not have PHP 5.4 installed yet and you cannot use SORT_NATURAL. This function sorts arrays natural multi-dimensional based on key value

this function can be used for arrays as

array ( name => array( key => value ) )
and

arrays as array( name => array( key => value), name => value) are not supported.

If this ‘trick’ gives a wrong order, you need a better key.

I was (as near everyone here πŸ™‚ looking to sort 2-dimensional arrays by certain fields in the associative sub-arrays.
What I didn’t like about the documentation examples is that you need to loop through the input array to create sub arrays first, then use those in the function call.

«php a-t-the-r-a-t-e chir.ag» (http://www.php.net/manual/en/function.array-multisort.php#60401) wrote a quite cunning wrapper function, I rewrote it slightly, changing variable names and adding comments (for my sanity πŸ™‚ mostly.
One snag I found: the input array is passed to array_multisort as last argument, but the changed array is not the one that is returned. Passing it by reference fixed that. This seems to be caused by the whole thing sitting inside the call_user_func_array, as shown below.

Often, one may have a group of arrays which have parallel data that need to be kept associated with each other (e.g., the various attribute values of a group of elements might be stored in their own arrays). Using array_multisort as is, by specifying additional fields, it is possible, as in the documentation example cited below, that this association will be lost.

In order to sort by one field only (yet still have the other array(s) being correspondingly sorted), one can use array_keys (which makes an array out of the keys) to ensure that no further sub-sorting is performed. This works because array_keys is making an array for which no duplicates can exist (since keys will be unique), and thus, the subsequent fields will have no relevance as far as subsorting.

For database like sorting, here is my 2 cents:

/**
* The RowsSortHelperTool class.
*/
class RowsSortHelperTool
<

?>

Will display something like this:

array(7) <
[0] => array(3) <
[«volume»] => int(98)
[«edition»] => int(2)
[«mine»] => int(5)
>
[1] => array(3) <
[«volume»] => int(86)
[«edition»] => int(1)
[«mine»] => int(5)
>
[2] => array(3) <
[«volume»] => int(86)
[«edition»] => int(6)
[«mine»] => int(5)
>
[3] => array(3) <
[«volume»] => int(86)
[«edition»] => int(6)
[«mine»] => int(4)
>
[4] => array(3) <
[«volume»] => int(85)
[«edition»] => int(6)
[«mine»] => int(5)
>
[5] => array(3) <
[«volume»] => int(67)
[«edition»] => int(2)
[«mine»] => int(5)
>
[6] => array(3) <
[«volume»] => int(67)
[«edition»] => int(7)
[«mine»] => int(5)
>
>

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива php Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами

сортировка массива php ΠΏΠΎ количСству элСмСнтов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ сортировка массива php ΠΏΠΎ количСству элСмСнтов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ сортировка массива php ΠΏΠΎ количСству элСмСнтов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ сортировка массива php ΠΏΠΎ количСству элСмСнтов. Π€ΠΎΡ‚ΠΎ сортировка массива php ΠΏΠΎ количСству элСмСнтовВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! 🙂

БСгодня я Ρ€Π΅ΡˆΠΈΠ» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π»Π΅Ρ‡ΡŒΡΡ ΠΎΡ‚ создания сайтов Π½Π° CMS ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ с Π²Π°ΠΌΠΈ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Β«ΠΏΠ»ΡŽΡˆΠΊΠ°Ρ…Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π²Π°ΠΌ ΠΏΡ€ΠΈ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

И ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ…, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π»ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ приходится достаточно часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅, – это сортировка массива php.

Π’Π°ΠΊΠΈΠ΅ частыС встрСчи Π±Ρ‹Π»ΠΈ обусловлСны Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, люди Π»ΡŽΠ±ΡΡ‚ врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, для разнообразия, ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° своём сайтС – Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅, сообщСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° сайтах-Π²ΠΈΠ·ΠΈΡ‚ΠΊΠ°Ρ….

Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Ρ‚ΠΎ, скорСС всСго, Π²Ρ‹ прСкрасно Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ массив, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ Ρ‡Ρ‚ΠΎ Π·Π° Π·Π²Π΅Ρ€ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Β«phpΒ». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Π½Π΅ Π±ΡƒΠ΄Ρƒ сильно ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ Π² эти понятия.

Для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΆΠ΅ напомню Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основныС полоТСния максимально понятным языком. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ Π½Π΅ причисляСтС сСбя ΠΊ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ Π·Π°Π΄Π°Ρ‡ ΠΈ путям ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

НСмного Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΎ массивах php

PHP – это сСрвСрный язык программирования. Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-интСрфСйс (Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€), хранятся ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° сСрвСрС.

PHP-скрипты скрыты ΠΎΡ‚ Π²Π·ΠΎΡ€Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ ΠΎΠΊΠ½Π΅ Π²Π°ΡˆΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΡ… выполнСния.

Массив Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ – это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…. Бостоят ΠΎΠ½ΠΈ ΠΈΠ· элСмСнтов массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΏΠ°Ρ€Ρ‹ [индСкс] => [Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅].

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ статичСскиС, динамичСскиС, Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½Ρ‹Π΅ ΠΈ Ρ‚.Π΄. (цСлая Π½Π°ΡƒΠΊΠ°) 🙂 Нам ΠΆΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ Π²ΠΏΠΎΠ»Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚ классификации Π½Π° ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ поняли Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, достаточно привСсти описаниС ΠΈΡ… структуры.

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Ρ‹ΠΉ массив php:

сортировка массива php ΠΏΠΎ количСству элСмСнтов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ сортировка массива php ΠΏΠΎ количСству элСмСнтов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ сортировка массива php ΠΏΠΎ количСству элСмСнтов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ сортировка массива php ΠΏΠΎ количСству элСмСнтов. Π€ΠΎΡ‚ΠΎ сортировка массива php ΠΏΠΎ количСству элСмСнтов

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив php:

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ? Если Π½Π΅Ρ‚ – ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° элСмСнты ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива php. Они сами ΡΠ²Π»ΡΡŽΡ‚ΡΡ массивами. Π’.Π΅. ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив – это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ массивов. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ ΠΈΡ… влоТСнности ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ большим.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π΄ΡƒΠΌΠ°ΡŽ, Ρ‚ΠΎΡ‡Π½ΠΎ понятно 🙂

Π’Π°ΠΊΠΆΠ΅ Π΅Ρ‰Ρ‘ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ понятиС ассоциативного массива php. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Π°ΠΊ распространСны, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅, Π½ΠΎ всё ΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ мСсто Π±Ρ‹Ρ‚ΡŒ.

Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, это Ρ‚Π°ΠΊΠΈΠ΅ массивы, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта массива Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎ связаны ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ прослСТиваСтся нСкая логичСская связь, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС нСльзя Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ассоциативного массива ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ конструкция:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, здСсь значСния ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ элСмСнтов массива тСсно связаны ΠΈ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС нСльзя Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒ эту связь. Благодаря этому ассоциативныС массивы ΠΎΡ‡Π΅Π½ΡŒ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «словарями» ΠΈΠ»ΠΈ «справочниками».

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½ΡƒΡŽ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ сортировкС массива php, Ρ‚.ΠΊ. для Ρ‚Π°ΠΊΠΈΡ… структур ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ Π½Π΅ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π’ самом php массивы ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ двумя способами:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ массивах php Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Ρ‚ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²ΠΈΠ΄Π΅ΠΎ:

сортировка массива php ΠΏΠΎ количСству элСмСнтов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ сортировка массива php ΠΏΠΎ количСству элСмСнтов. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ сортировка массива php ΠΏΠΎ количСству элСмСнтов. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ сортировка массива php ΠΏΠΎ количСству элСмСнтов. Π€ΠΎΡ‚ΠΎ сортировка массива php ΠΏΠΎ количСству элСмСнтов

Напомню, Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ структуру массива Ρƒ сСбя Π½Π° экранС, послС объявлСния массива Π² ΠΊΠΎΠ΄Π΅ сайта Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ:

Если распСчатываСмая Π²Π°ΠΌΠΈ пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ массивом, Ρ‚ΠΎ тСкст Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки:

И Π΅Ρ‰Ρ‘ нСсколько слов ΠΎ Ρ‚Π΅ΠΌΠ΅ нашСй ΡΡ‚Π°Ρ‚ΡŒΠΈ – сортировкС массивов php.

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π΄Π°Π½Π½Ρ‹Π΅ Π² массивах структурированы ΠΈ элСмСнты располоТСны Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‘, Π½Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ понадобится сортировка массива php, которая Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ функциями языка.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всё, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ – это Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ послС объявлСния массива, ΡƒΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΎΠ±Π·ΠΎΡ€Ρƒ самих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки массива php

Π˜Ρ… ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ прСдставлСн Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ языка php:

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ произвСсти сортировку массива php с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Ρ‘ послС объявлСния массива ΠΈ заполнСния Π΅Π³ΠΎ значСниями, ΡƒΠΊΠ°Π·Π°Π² Π΅ΠΉ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² наш массив. НапримСр:

Рассмотрим Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ…. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² Ρ‚ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅, Ρ‚.Π΅. Β«Π½Π°Π·Π²Π°Π½ΠΈΠ΅(ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2, …);Β».

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ послС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Β«;Β», Ρ‚.ΠΊ. Π±Π΅Π· Π½Π΅Ρ‘ Π½Π° экранС появится красивоС сообщСниС ΠΎΠ± ошибкС 🙂

Π’ качСствС наглядного ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ простой ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ нСупорядочСны ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‚Π°ΠΊ ΠΈ значСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Ρ‹Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ наглядны ΠΈ понятны.

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ произвСсти сортировку массива Π² Π½ΡƒΠΆΠ½ΠΎΠΌ порядкС Π½Π° php?

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ простой сортировка массива php ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ

Если Π²Ρ‹ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ просмотр Π²ΠΈΠ΄Π΅ΠΎΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, Ρ‚ΠΎ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΊ просмотру Π΄Π°Π½Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΡ…ΠΎΠ΄Ρ‡ΠΈΠ²ΠΎ ΠΈ понятно дСмонстрируСтся Ρ€Π°Π±ΠΎΡ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сортировки массива php ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°:

Если послС Π½Π΅Π³ΠΎ Ρƒ вас ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ вопросы, Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈΠΆΠ΅.

Но, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ являСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΈ Π±Π΅Π· этих ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‰ΠΈΡ… Ρ„Π»Π°Π³ΠΎΠ². По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ) Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ SORT_REGULAR.

Наш тСстовый массив послС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sort() Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, послС сортировки массива ΠΏΠΎ значСниям, значСния ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ помСнялись, Ρ‚.ΠΊ. sort Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· сохранСния связи Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β», ΠΎ Ρ‡Ρ‘ΠΌ говорится Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ php.

Π’ ΠΈΡ‚ΠΎΠ³Π΅, Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ для ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° случаСв.

Π’ Π½Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: сам массив ΠΈ Ρ„Π»Π°Π³ сортировки ΠΈ ΠΎΠ½Π°, ΠΊΠ°ΠΊ ΠΈ sort, большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов. Наш тСстовый массив послС Π²Ρ‹Π·ΠΎΠ²Π° Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π—Π° Ρ‚Π΅ΠΌ лишь ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сортировку массива php ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π΅Π³ΠΎ элСмСнтов с сохранСниСм связи Β«ΠΊΠ»ΡŽΡ‡ β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β».

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, данная функция ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для сортировки ассоциативных массивов php, Ρ‚.Π΅. структур, Π³Π΄Π΅ данная связь Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΈ Π²Π°ΠΆΠ½Π°.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ располоТСны ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ, Ρ‚.ΠΊ. ΠΎΠ½Π° позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сортировку ассоциативного массива php ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ c сохранСниСм ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Наш тСстовый массив ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ sort Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² сохранСнии ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ происходит сортировка массива php. Π­Ρ‚ΠΎ ΠΈ называСтся сохранСниСм связи Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β», которая нСвСроятно Π²Π°ΠΆΠ½Π° ΠΏΡ€ΠΈ сортировкС ассоциативных массивов php.

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, Ρ‡Ρ‚ΠΎ ΠΈ упомянутая функция, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сортировка массива php Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ. Π’Π°ΠΊΠΆΠ΅ являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΈ сортировкС ассоциативных массивов php.

ПослС Π²Ρ‹Π·ΠΎΠ²Π° Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ сортировки массива php ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ

Π”Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволяли ΠΌΠ΅Π½ΡΡ‚ΡŒ порядок ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ/Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ внСсти Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΈ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ элСмСнты Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΡ…, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Β«Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ…Β».

Π­Ρ‚Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… нСстандартных Π·Π°Π΄Π°Ρ‡, ΠΏΠΎΡ€ΠΎΠΉ вСсьма интСрСсных 🙂

natsort($array); β€” данная функция вносит Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ Π² сСмСйку sort-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Ρ‚.ΠΊ. ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΡ€Π½Π΅ отличаСтся ΠΎΡ‚ Π½ΠΈΡ…. Π£ natsort Π΅ΡΡ‚ΡŒ всСго ΠΎΠ΄ΠΈΠ½-СдинствСнный Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – это сортируСмый массив, значСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ располоТСны Π² порядкС, ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Π’Π°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ носит Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Β«natural orderingΒ», Ρ‡Ρ‚ΠΎ ΠΏΠΎ-русски ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «СстСствСнный порядок». Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π» понятСн смысл Π΄Π°Π½Π½ΠΎΠ³ΠΎ утвСрТдСния, ΠΌΡ‹ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ массив:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, функция natsort сохраняСт связь Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с asort, которая максимально ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Π½Π΅Ρ‘. ПослС Π²Ρ‹Π·ΠΎΠ²Π° послСднСй наш массив ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Если ΠΆΠ΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ natsort, Ρ‚ΠΎ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ массив Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ:

Π”ΡƒΠΌΠ°ΡŽ, Ρ€Π°Π·Π½ΠΈΡ†Π° Π²Π°ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΈΠ΄Π½Π° ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ natsort для вас Π±ΡƒΠ΄Π΅Ρ‚ понятСн:-)

shuffle($array); β€” Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ полСзная функция, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ массив php ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ элСмСнты Π² случайном порядкС.

ΠžΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ страницС Π² случайном порядкС ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° сайт-Π²ΠΈΠ·ΠΈΡ‚ΠΊΡƒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π² Ρ€Π°Π·Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠŸΡ€ΠΈ этом связь Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» Π½Π΅ сохраняСтся. Π’ΠΎ Π΅ΡΡ‚ΡŒ, массив, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π½Π°ΠΌΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π»ΠΈΡ‡Π½ΠΎ Ρƒ мСня принял Π²ΠΈΠ΄:

ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ, послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ порядок элСмСнтов Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΉ.

РассмотрСнныС Π½Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ достаточно простыми ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ понятСн. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° пСрСдаётся массив, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ значСниям Π΅Π³ΠΎ элСмСнтов, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„Π»Π°Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сортировки (Π±Π΅Π· Π½Π΅Π³ΠΎ спокойно ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ).

Π”Π°Π»Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы php ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ элСмСнтов Π² соотвСтствии с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ называСтся, Β«Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ…Β» 🙂

Π’ срСдС программистов ΠΎΠ½ достаточно популярСн, Ρ‚.ΠΊ. позволяСт Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с сортировкой (с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ самых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²), с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ своСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Одним ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ являСтся сортировка ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива php ΠΏΠΎ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ полю.

Π§Ρ‚ΠΎΠ±Ρ‹ наглядно ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ массив:

Как Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΎΠ½ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ, Ρ‚.ΠΊ. Π΅Π³ΠΎ элСмСнтами ΡΠ²Π»ΡΡŽΡ‚ΡΡ массивы, структура ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π°: ΠΎΠ½ΠΈ всС ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ»Π΅ с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Β«idΒ». И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ наша Π·Π°Π΄Π°Ρ‡Π° – Ρ€Π°ΡΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти элСмСнты ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ, Ρ‚.Π΅. Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π³Π»Π°Π²Π½ΠΎΠΌ массивС элСмСнты Π±Ρ‹Π»ΠΈ располоТСны Π² соотвСтствии со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π΅ΠΉ Π² подмассивах.

НуТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, довольно распространённая Π·Π°Π΄Π°Ρ‡Π°. Π Π΅ΡˆΠΈΡ‚ΡŒ Π΅Ρ‘ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

usort($array, β€˜function’); β€” функция php сортировки ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΏΠΎ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ полю.

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сортировку элСмСнтов массива php Π±Π΅Π· сохранСния связи Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» Π² соотвСтствии с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСдаётся Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ usort.

Π‘Π°ΠΌΠ° функция описываСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. ΠšΠ°ΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, для сортировки элСмСнтов ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива php ΠΏΠΎ полю [β€˜id’] Π² порядкС возрастания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Всё, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сортировку, это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ usort($array, β€˜myCmp’); Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌ мСстС ΠΊΠΎΠ΄Π°. Π’ качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

uasort($array, β€˜function’); β€” Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° функция php сортировки ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΏΠΎ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ полю.

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ usort, Π½ΠΎ сохраняСт связь Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β», Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠΉ для сортировки ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… ассоциативных массивов.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π° ΠΆΠ΅ самая. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΅Ρ‘ выполнСния Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Для измСнСния порядка сортировки элСмСнтов ΠΈ внСсСния ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ ΠΈ сами 🙂

НапримСр, Ссли Ρƒ вас Π² массивах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ элСмСнтами исходного, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅ [β€˜name’] со строковым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция для сортировки ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива php ΠΏΠΎ этому полю Π² порядкС возрастания Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массивов php с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€” Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π΅ самый простой, Π½ΠΎ Π·Π°Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΉ Π² настройкС, ΠΈ Ссли ΠΎΠ²Π»Π°Π΄Π΅Ρ‚ΡŒ ΠΈΠΌ, Ρ‚ΠΎ ΠΎΠ½ станСт вашим ΠΈΠ·Π»ΡŽΠ±Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

А Π²Ρ‚ΠΎΡ€ΠΎΠΉ стал Ρ‚Π°ΠΊΠΈΠΌ:

Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΎΠ½ отсортировался Π² соотвСтствии с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. Π’ΠΎΡ‚ такая Π²ΠΎΡ‚ ΠΏΠ΅Ρ‚Ρ€ΡƒΡˆΠΊΠ° 🙂

Π‘ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΎΠ± array_multisort рассказано Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎ. Π’Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΌ Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΅Ρ‘ использования:

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сортировку ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов:

ΠŸΡ€ΠΈ этом, Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ нСсколько массивов, дСлая сортировку ΠΏΠΎ нСскольким полям. Π’ этом случаС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сортировки ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… массивов Π±ΡƒΠ΄ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ сортировкС самого послСднСго ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌ.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ своСобразный «снСТный ΠΊΠΎΠΌΒ» Π² php.

ΠŸΡ€ΠΈ сортировкС массива php с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ассоциативных массивов связь Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» сохраняСтся, Π° для числовых – Π½Π΅Ρ‚.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΈ тСстированиС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сортировкС ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива php array_multisort ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Ρ‡Π΅ΠΌ usort.

Но array_multisort Π½Π΅ смоТСт ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ со всСми Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ силу usort. НапримСр, Ρ‚Π° ΠΆΠ΅ сортировка ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива php ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌΡƒ полю. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ случаС Π½ΡƒΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои ΡˆΠ°Π½ΡΡ‹ Π½Π° успСх ΠΏΡ€ΠΈ использовании Ρ‚ΠΎΠΉ Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ конструкции.

ΠŸΡ€ΠΎ сСбя я ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ нСдолюбливаю array_multisort ΠΈΠ·-Π·Π° Π΅Ρ‘ запутанности ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ·Π³ΠΎΠ²ΠΎΠ³ΠΎ напряТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ массив, отсортированный с Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΅ΠΉ Π±Π΅Π· особой надобности, отдавая ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ usort ΠΈ Π±ΠΎΠ»Π΅Π΅ простым функциям, ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ·Ρ‹Π²Π°ΡŽ ΠΈ вас 🙂

РассмотрСнныС Π½Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сортировку массивов Π² php ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ элСмСнтов. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ произвСсти Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ дСйствиС ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ элСмСнтов.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ php для сортировки массива ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ ΠΎΠ±Π·ΠΎΡ€Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ всСх Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° общая Ρ‡Π΅Ρ€Ρ‚Π° – всС ΠΎΠ½ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β». А ΠΈΠ½Π°Ρ‡Π΅, собствСнно говоря, ΠΈ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³Π»ΠΎ, Ρ‚.ΠΊ. Ρ‚ΠΎΠ³Π΄Π° ΠΎΡ‚ Π½ΠΈΡ… Π½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ смысла 🙂

Вакая Π²ΠΎΡ‚ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Рассмотрим ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π’ Π΄Π°Π½Π½ΠΎΠΉ конструкции Π΄Π²Π° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: сортируСмый массив php ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ„Π»Π°Π³ΠΎΠ² сортировки, с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² описании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sort (использованиС Π΅Π³ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ). Данная php функция позволяСт ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ.

Для дСмонстрации Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ вСрнёмся ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, описанному Π² самом Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Если ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ сортировку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ksort, Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π”ΡƒΠΌΠ°ΡŽ, всё просто ΠΈ понятно.

ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ сортировку массива php ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΎΠ½Π° являСтся антагонистом ksort, ΠΊΠ°ΠΊ ΠΈ rsort для sort.

Π£ Π½Π΅Ρ‘ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: сортируСмый массив ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. ПослС Π΅Ρ‘ запуска наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ Π²ΠΈΠ΄:

Π”ΡƒΠΌΠ°ΡŽ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ излишни 🙂

ukrsort($array, β€˜function’); β€” Π°Π½Π°Π»ΠΎΠ³ упомянутой Ρ€Π°Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ php для сортировки массива ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ β€” usort.

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ: сохраняСт ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» ΠΈ сортировка массива php производится Π² соотвСтствии с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСдаётся Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΉ – это сортируСмый массив.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ usort Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сортировка происходит ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ элСмСнтов.

Для наглядности Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сортировку массива php ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ Π² порядкС возрастания. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ наш массив ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

ΠžΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΉ плюс использования этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ – Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ с Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ сортировку массива php ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΡƒ ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ.

Напоминаю, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΡŽΡ‡ΠΈ элСмСнтов массива нСсут ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΆΠ΅ случаС, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ usort ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ простыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ΠΎΡ‚ наша ΡΡ‚Π°Ρ‚ΡŒΡ ΠΈ подошла ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ (Π»Π°ΠΉΠΊ, Ссли Π΄ΠΎΡ‡ΠΈΡ‚Π°Π» Π΄ΠΎ этого мСста) 🙂

Π’ Π½Π΅ΠΉ я постарался максимально просто ΠΈ Π² Ρ‚ΠΎΠΆΠ΅ врСмя наглядно ΠΈ ΠΏΠΎΠ»Π½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ способы сортировки Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² массив Π² php, подкрСпляя свои слова ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠ·Π½Π°ΡŽ, Ρ‡Ρ‚ΠΎ публикация Π²Ρ‹ΡˆΠ»Π° довольно ΠΎΠ±ΡŠΡ‘ΠΌΠ½ΠΎΠΉ ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ для Π΅Π΄ΠΈΠ½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ чтСния. Π—Π°Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ потрСбуСтся сортировка массива php, Π²Ρ‹ всСгда смоТСтС ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π·Π° описаниСм Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ Π²Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΅Ρ‘ использования.

НадСюсь, информация Π±Ρ‹Π»Π° для вас ΠΏΠΎΠ»Π΅Π·Π½Π° 🙂

ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° обновлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ вступайтС Π² сообщСства Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях, Π³Π΄Π΅ Π²Ρ‹ всСгда смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ вас вопрос ΠΈ ΠΏΠΎΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² обсуТдСниях, помогая Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π² создании сайта своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ!

НС Π±ΡƒΠ΄ΡŒΡ‚Π΅ пассивными ΠΈ Π²Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ воздастся 🙂

ВсСм ΡƒΠ΄Π°Ρ‡ΠΈ ΠΈ Π΄ΠΎ Π½ΠΎΠ²Ρ‹Ρ… встрСч!

P.S.: Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ сайт Π»ΠΈΠ±ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ внСсти ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ, Π½ΠΎ для этого Π½Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ТСлания, ΠΌΠΎΠ³Ρƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ свои услуги.

Π‘ΠΎΠ»Π΅Π΅ 5 Π»Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сайтов. Π Π°Π±ΠΎΡ‚Π° с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ тСхнологиями web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ уровня: Π»Π΅Π½Π΄ΠΈΠ½Π³ΠΈ, ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ сайты, Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ‹, CRM, ΠΏΠΎΡ€Ρ‚Π°Π»Ρ‹. Π’ Ρ‚ΠΎΠΌ числС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° HighLoad ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΈΡΡ‹Π»Π°ΠΉΡ‚Π΅ ваши заявки Π½Π° email cccpblogcom@gmail.com.

И с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ 😉

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *