Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ PHP 4, PHP 5
uasort
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΉ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
bool uasort(array arr, function cmp_function)
Π€ΡΠ½ΠΊΡΠΈΡ uasort() ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² arr Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ cmp_function.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΊΠΎΠ³Π΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ uasort() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈ false Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ usort() ΠΈ uksort() Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ PHP 3 =3.0.4, PHP 4, PHP 5
uksort
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
bool uksort(array arr, function cmp_function)
Π€ΡΠ½ΠΊΡΠΈΡ uksort() ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² arr ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ cmp_function. Π ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π²Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅ΡΠ½ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΠ»ΠΈ 0.
Π€ΡΠ½ΠΊΡΠΈΡ uksort() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈ FALSE Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌΡ ΠΊΡΠΈΡΠ΅ΡΠΈΡ, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ Π°Π»ΡΠ°Π²ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΡΡΡ Π² $Files Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ Π·Π°Ρ ΠΎΡΠΈΠΌ Π²ΡΠ²Π΅ΡΡΠΈ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² Π»Π΅ΠΊΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ ΡΠ°ΠΉΠ»Π°ΠΌ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ ΡΡΠΎΠΈΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ uksort(), Π½Π°ΠΏΠΈΡΠ°Π² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄Π²ΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ uksort().
1 ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ uksort():
// ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ $f1 ΠΈ $f2 ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ:
// -1, Π΅ΡΠ»ΠΈ $f1<$f2,
// 0, Π΅ΡΠ»ΠΈ $f1==$f2
// 1, Π΅ΡΠ»ΠΈ $f1>$f2
// ΠΠΎΠ΄ < ΠΈ > ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΈΠΌΠ΅Π½ Π² Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅
function FCmp($f1,$f2)
{ // ΠΠ°ΡΠ°Π»ΠΎΠ³ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ
if(is_dir($f1) && !is_dir($f2)) return -1;
// Π€Π°ΠΉΠ» Π²ΡΠ΅Π³Π΄Π° ΠΈΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°
if(!is_dir($f1) && is_dir($f2)) return 1;
// ΠΠ½Π°ΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ Π»Π΅ΠΊΡΠΈΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
if($f1<$f2) return -1; elseif($f1>$f2) return 1; else return 0;
}
// ΠΡΡΡΡ $Files ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ - ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²
// Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡΡΠΎΡΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ.
uksort($Files,"FCmp"); //ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ "ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅"
2 ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ uksort():
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a > $b) ? -1 : 1;
}
$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");
uksort($a, "cmp");
while (list($key, $value) = each($a)) {
echo "$key: $valuen";
}
?>
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ²Π΅Π΄Π΅Ρ:
20: twenty10: ten4: four3: three
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ PHP 3 =3.0.4, PHP 4, PHP 5
usort
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°Π΅ΡΠ»ΡΡΠΊΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
bool usort(array arr, callback cmp_function)
Π€ΡΠ½ΠΊΡΠΈΡ usort() ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² arr Π±Π΅Π· ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ cmp_function. Π ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π²Π° ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅ΡΠ½ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΠ»ΠΈ 0.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΊ Π±Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ "Π³ΠΈΠ±ΡΠΈΠ΄ΠΎΠΌ" ΡΡΠ½ΠΊΡΠΈΠΉ uasort() ΠΈ sort(). ΠΡ sort() ΠΎΠ½Π° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. Π ΠΎΡ uasort() - ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π° ΠΏΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ³ΠΎΠ΄Π½Π° ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΏΠΈΡΠΊΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ usort():
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
while (list($key, $value) = each($a)) {
echo "$key: $valuen";
}
?>
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°:
function cmp($a, $b) {
if($a==$b) return 0;
return ($a > $b) ? -1 : 1;
}
$a=array (3,2,5,6,1);
usort($a, "cmp");
while(list($key,$val)=each($a)) {
echo "$key: $valn";
}
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ:
0: 61: 52: 33: 24: 1
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°:
function cmp($a,$b) {
return strcmp($a["fruit"],$b["fruit"]);
};
$fruit[0]["fruit"]="lemons";
$fruit[1]["fruit"]="apples";
$fruit[2]["fruit"]="grapes";
usort($fruit, "cmp");
while(list($key,$val)=each($fruit)) {
echo "$fruit[$key]:".$val["fruit"]."n";
}
ΠΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² $a ΠΈ $b ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ:
$fruit[0]: apples$fruit[1]: grapes$fruit[2]: lemons
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²ΡΠΎΡΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΏΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
<?php
function arr_sort($a,$b) {
list($key1,$val)=each($a);
list($key2,$val)=each($b);
return strcmp($a[$key1],$b[$key2]);
};
$arr[0]["1-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ"]="ΡΠ±Π»ΠΎΠΊΠ°";
$arr[1]["2-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ"]="Π³ΡΡΡΠ°";
$arr[2]["3-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ"]="ΠΏΠ΅ΡΡΠΈΠΊ";
$arr[3]["4-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ"]="Π΄ΡΠ½Ρ";
$arr[4]["5-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ"]="ΠΌΠ°Π»ΠΈΠ½Π°";
$arr[5]["6-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ"]="Π°Π½Π°Π½Π°Ρ";
usort($arr,"arr_sort");
echo "<pre>";
print_r($arr);
echo "</pre>";
?>
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Array( [0] => Array ( [6-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ] => Π°Π½Π°Π½Π°Ρ ) [1] => Array ( [2-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ] => Π³ΡΡΡΠ° ) [2] => Array ( [4-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ] => Π΄ΡΠ½Ρ ) [3] => Array ( [5-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ] => ΠΌΠ°Π»ΠΈΠ½Π° ) [4] => Array ( [3-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ] => ΠΏΠ΅ΡΡΠΈΠΊ ) [5] => Array ( [1-ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ] => ΡΠ±Π»ΠΎΠΊΠ° ))
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ PHP 3 =3.0.3, PHP 4, PHP 5
array_multisort
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
bool array_multisort(array ar1, [, mixed arg [, mixed ... [, array ...]]])
Π€ΡΠ½ΠΊΡΠΈΡ array_multisort() ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ true ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΡΠΎΠ»Π±ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ, ΠΊΠ°ΠΊ Π² ΡΡΡΠΎΠΊΠ°Ρ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ. ΠΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ. Π€Π»Π°Π³ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΊΠ°Π·Π²Π°ΡΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΈ ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ², ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ.
Π€Π»Π°Π³ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ:
Π€Π»Π°Π³ΠΈ ΡΠΈΠΏΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ:
Π£Π°Π·Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π°Π³ΠΎΠ² ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠ»Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ. Π€Π»Π°Π³ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° arr ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠΎΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠ»Π°Π³ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Ρ, ΡΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ»Π°Π³ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (SORT_ASC, SORT_REGULAR).
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ array_multisort():
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ar1 = array("10", 100, 100, "a");
ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);
// $ar1 = array("10", "a", 100, 100);
// $ar2 = array(1, 1, "2", 3);
ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ (100 ΠΈ 100) ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½Ρ.
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
$ar = array(array("10", 100, 100, "a"), array(1, 3, "2", 1));
array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1], $SORT_NUMERIC, SORT_DESC);
// $ar[0] = ("10", 100, 100, "a") - ΡΠΎΡΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ
// $ar[1] = (1, 3, "2", 1) - ΡΠΎΡΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΡΠ»Π° ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ PHP 4, PHP 5
ΠΡΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ²Π°
reset
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ±ΡΠΎΡ ΠΊΡΡΡΠΎΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
mixed reset(array arr)
Π€ΡΠ½ΠΊΡΠΈΡ reset() ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΡΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ²Π° arr Π½Π° Π΅Π³ΠΎ Π½Π°ΡΠ°Π»ΠΎ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ reset():
<?php
$array = array("step one", "step two", "step three", "step four");
// by default, the pointer is on the first element
echo current($array) . "<br />n"; // "step one"
// skip two steps
next($array);
next($array);
echo current($array) . "<br />n"; // "step three"
// reset pointer, start again on step one
reset($array);
echo current($array) . "<br />n"; // "step one"
?>
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ PHP 3, PHP 4, PHP 5