So sortieren Sie ein Array in PHP und lassen die Schlüsselwerte unverändert: Zuerst müssen wir die Schlüsselnamen aus dem Array herausnehmen und dann die Schlüsselnamen entsprechend den entsprechenden Schlüsselnamen sortieren, um sie zu bilden ein neues Array und geben Sie es zurück.
Implementierungscode:
(Empfohlenes Tutorial: php-Video-Tutorial)
$data = array( 1001 => array( 'age' => 22, 'name' => '鸠摩智' ), 1007 => array( 'age' => 21, 'name' => '慕容复' ), 1004 => array( 'age' => 27, 'name' => '乔帮主' ) ); //根据字段age对数组$data进行降序排列 $data = arraySort($data, "age", "desc" ); print_r($data); /** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */ function arraySort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } if ($type == 'asc') { natsort($keysvalue); } if ($type == 'desc') { natsort($keysvalue); $keysvalue = array_reverse($keysvalue, TRUE); // 将原数组中的元素顺序翻转,如果第二个参数指定为 true,则元素的键名保持不变 } foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }
Hier können wir auch die ArraySort-Funktion vereinfachen, und das Verarbeitungsergebnis ist das gleiche:
/** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */ function arraySort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } $type == 'asc' ? asort($keysvalue) : arsort($keysvalue); foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }
Ausgabeergebnis:
Die Schlüsselnamen bleiben unverändert und das Implementierungsprinzip ist sehr einfach. Nehmen Sie zuerst die Schlüsselnamen heraus, sortieren Sie dann die Schlüsselnamen und weisen Sie dann den entsprechenden Schlüsselnamen Werte zu, um ein neues Array zu bilden und zurückzugeben Es.
Wie Sie sehen, verwenden wir hier hauptsächlich mehrere Kernsortierfunktionen von PHP.
asort() sortiert das assoziative Array in aufsteigender Reihenfolge nach Schlüsselwert.
arsort() sortiert das assoziative Array in absteigender Reihenfolge nach Schlüsselwert.
natsort() implementiert die „natürliche Sortierung“, also die Sortiermethode für Zahlen von 1 bis 9 und die Sortiermethode für Buchstaben von a bis z, wobei die kürzeren zuerst beginnen. Der Index des Arrays bleibt mit dem Zellenwert verknüpft.
Hinweis: Im natürlichen Sortieralgorithmus ist die Zahl 2 kleiner als die Zahl 10. In Computer-Sortieralgorithmen ist 10 kleiner als 2, da die erste Zahl in „10“ kleiner als 2 ist.
Verwandte Empfehlungen: php-Training
Das obige ist der detaillierte Inhalt vonSo sortieren Sie ein Array in PHP und lassen die Schlüsselwerte unverändert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!