Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung gängiger Array-Sortiermethoden in PHP

Zusammenfassung gängiger Array-Sortiermethoden in PHP

藏色散人
藏色散人nach vorne
2020-12-15 09:30:144454Durchsuche

1. Einfache Array-Sortierung sort()-Funktion und rsort()-Funktion:

sort() 函数和rsort() 函数:

语法规则:

bool sort(array &array [,int sort_flags]
bool rsort(array &array [.int_sort_flags]

参数:

  第一个参数是排序数组对象

  第二个参数是可以选的 可选值:

    SORT_REGULAR:是默认值,将自动识别数组的元素类型进行排序
    SORT_NUMERIC:用于数组元素排序
    SORT_STRING:用于字符串排序
    SORT_LOCALE_STRING:根据当前的locale设置来把元素当作字符串比较

示例:

$a=array(4,7,9,1);
sort($a);
pirnt_r($a);
rsort($a);
print_r($a);

2.根据键名对数组排序

定义: ksort() 函数按照键名对数组进行有小到大的排序。 krsort()ksort()函数相反,排序后为数组值保持原来的键。

示例

$data= array(5=>"five",8=>"eight",1=>"one",7=>"seven");
ksrot($data);
print_r($data);
krsot($data);
print_r($data);

3.根据元素值排序

定义 : asort() 从小到大 /  arsort() 从大到小,用这个函数排序,原始键名将被忽略,使用依次数字重新索引数组下标

示例 :

$data=array("a"=>1,"b"=>2,"c"=>3);
asort($data);
print_r($data);
arsort($data);
print_r($data);

4.自然排序

定义 : 是个非常特殊的排序方式,这种方式使用认知而不是使用计算规则,这种特性称为——自然排序法,即数字从1到9,字母从a-z,短者优先。

示例 :

$data=array("file1.txt","file11.txt","file111.txt");
natsort($data);//普通自然排序
natcasesort($data);//忽略大小写

5.根据用户自定义排序规则

语法规则 : 

bool usort(array &array ,callback cmp_function)
bool uasort(array &array,callback cmp_function)
bool uksort(array &array,callback cmp_function)

说明 : 自定义回调函数,需要两个参数,分别是数组两个连续元素,比较第一个参数小于,大于,等于第二个参数是分别返回 0,1,-1

示例 : 

$data= array("ab","abc","a","ac","abcd");
usrot($data,"mysortByLen");
function mysortByLen($one,$two){
 if(strlen($one)== strlen($two)){
  return 0;
 }else{
 return (strlen($one)>strlen($two))?1:-1;
}

6.多维数组排序

定义 : array_multisort() Grammatikregeln:

bool array_multisort(array array1 [,mixed arg,[,array ....]])

Parameter:

Der erste Parameter ist Sortieren Array-Objekte

 Der zweite Parameter ist ein optionaler Wert: SORT_REGULAR: Dies ist der Standardwert, der automatisch den Elementtyp des Arrays für die Sortierung identifiziert
 SORT_NUMERIC: Wird zum Sortieren von Array-Elementen verwendet
SORT_STRING: Wird zum Sortieren von Zeichenfolgen verwendet
SORT_LOCALE_STRING: Elemente als Zeichenfolgenvergleich behandeln

🎜Beispiel:🎜
$data=array(
  array("id"=>1,"name"=>4),
  array("id"=>1,"name"=>2),
  array("id"=>2,"name"=>3)
);
foreach($data as $key=>$value){
 $ids[$key]=$value["id"];
 $names[$key]=$value["name"]
}
array_multisort($data,$ids,$names);
print_r($data);
🎜2. Sortieren Sie das Array nach dem Schlüsselnamen🎜Definition: ksort() Die Funktion sortiert das Array von klein nach groß nach dem Schlüsselnamen. krsort() ist das Gegenteil der Funktion ksort(), die nach dem Sortieren die ursprünglichen Schlüssel für die Array-Werte beibehält. 🎜🎜Beispiel🎜
array(    array("id"=>1,"name"=>2),    array("id"=>1,"name"=>4),    array("id"=>2,"name"=>3)
 );
🎜3. Nach Elementwert sortieren🎜Definition: asort() Von klein nach groß/ arsort() Von groß nach klein, Verwenden Sie diese Funktionssortierung. Der ursprüngliche Schlüsselname wird ignoriert und der Array-Index wird mithilfe fortlaufender Nummern neu indiziert Diese Funktion nutzt Kognition statt Berechnungsregeln und wird als natürliche Reihenfolge bezeichnet, d. h. Zahlen von 1 bis 9 und Buchstaben von a bis z, wobei die kürzere Reihenfolge Vorrang hat. 🎜🎜Beispiel:🎜rrreee🎜5. Nach benutzerdefinierten Sortierregeln🎜Grammatikregeln: 🎜rrreee🎜Beschreibung: Die benutzerdefinierte Rückruffunktion erfordert zwei Parameter, die zwei aufeinanderfolgende Elemente des Arrays sind. Vergleichen Sie das erste Parameter ist kleiner als, größer als und gleich. Der zweite Parameter gibt jeweils 0, 1 und -1 zurück. Beispiel: 🎜rrreee🎜6 Code>Funktionspaar Sortieren Sie mehrere Arrays oder sortieren Sie mehrdimensionale Arrays nach einer oder mehreren Dimensionen. 🎜rrreee🎜Beispiel: 🎜rrreee🎜Ausgabeergebnis: 🎜rrreee🎜 Empfohlen: „🎜PHP Video Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonZusammenfassung gängiger Array-Sortiermethoden in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen