Η συνάρτηση array_multisort() του PHP

Παράδειγμα

返回一个升序排列的数组:

<?php
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);;
print_r($a);
?>

运行实例

Ορισμός και χρήση

Η συνάρτηση array_multisort() επιστρέφει μια ταξινομημένη λίστα. Μπορείτε να εισάγετε μια ή περισσότερες λίστας. Η συνάρτηση ταξινομεί πρώτα την πρώτη λίστα και στη συνέχεια τις άλλες, αν δύο ή περισσότερες τιμές είναι ίδιες, ταξινομεί την επόμενη λίστα.

Σημειώσεις:Οι ονόματα κλειδιών των字符串 θα διατηρηθούν, αλλά τα αριθμητικά κλειδιά θα επαναπροσαρμοστούν, ξεκινώντας από 0 και αυξανόμενα κατά 1.

Σημειώσεις:Μπορείτε να καθορίσετε την τάξη και τον τύπο ταξινόμησης μετά από κάθε πίνακα. Αν δεν καθοριστεί, κάθε παράμετρος πίνακα θα χρησιμοποιήσει την προεπιλεγμένη τιμή.

Γραμματική

array_multisort(array1,sorting order,sorting type,array2,array3...)
Παράμετροι Περιγραφή
array1 Απαιτείται. Καθορίζει τον πίνακα.
sorting order

Προαιρετικό. Καθορίζει την τάξη ταξινόμησης. Πιθανές τιμές:

  • SORT_ASC - Προεπιλεγμένο. Ταξινόμηση σε αύξουσα σειρά (A-Z).
  • SORT_DESC - Ταξινόμηση σε φθίνουσα σειρά (Z-A).
sorting type

Προαιρετικό. Καθορίζει τον τύπο ταξινόμησης. Πιθανές τιμές:

  • SORT_REGULAR - Προεπιλεγμένο. Καθορίζει κάθε στοιχείο σε κανονική σειρά (Standard ASCII, χωρίς αλλαγή τύπου).
  • SORT_NUMERIC - Καθορίζει κάθε στοιχείο ως αριθμό.
  • SORT_STRING - Καθορίζει κάθε στοιχείο ως字符串.
  • SORT_LOCALE_STRING - Καθορίζει κάθε στοιχείο ως字符串 και χρησιμοποιεί την τρέχουσα ρύθμιση γλώσσας (που μπορεί να αλλάξει με το setlocale()).
  • SORT_NATURAL - Καθορίζει κάθε στοιχείο ως字符串 και χρησιμοποιεί την φυσική ταξινόμηση, παρόμοια με την natsort().
  • SORT_FLAG_CASE - Μπορεί να συνδυαστεί (Λογική ή /) με SORT_STRING ή SORT_NATURAL για την ταξινόμηση των字符串 χωρίς διάκριση γραμμάτων.
array2 Προαιρετικό. Καθορίζει τον πίνακα.
array3 Προαιρετικό. Καθορίζει τον πίνακα.

Σημειώσεις

Η συνάρτηση array_multisort() ταξινομεί πολλαπλούς πίνακες ή πολυδιάστατους πίνακες.

Ο πίνακας στη παράμετρο είναι θεωρείται ως στήλη μιας πίνακα και ταξινομείται κατά σειρά γραμμής - αυτό είναι παρόμοιο με τη λειτουργία ORDER BY του SQL. Ο πρώτος πίνακας είναι ο κύριος πίνακας που θα ταξινομηθεί. Αν τα στοιχεία του πίνακα είναι ίδια, ταξινομείται με βάση το μέγεθος των αντίστοιχων τιμών από τον επόμενο πίνακα, και ούτω καθεξής.

Ο πρώτος παράμετρος είναι ένας πίνακας, κάθε επόμενη παράμετρος μπορεί να είναι ένας πίνακας ή ένας από τους παρακάτω σημάδια ταξινόμησης (οι σημάδια ταξινόμησης χρησιμοποιούνται για να αλλάξουν την προεπιλεγμένη τάξη ταξινόμησης):

  • SORT_ASC - Προεπιλεγμένο, ταξινόμηση σε αύξουσα σειρά. (A-Z)
  • SORT_DESC - Ταξινόμηση σε φθίνουσα σειρά. (Z-A)

Μετά μπορείτε να καθορίσετε τον τύπο της ταξινόμησης:

  • SORT_REGULAR - Προεπιλεγμένο. Καθορίζει την τάξη των στοιχείων σε κανονική σειρά.
  • SORT_NUMERIC - Καθορίζει την τάξη των στοιχείων σε αριθμητική σειρά.
  • SORT_STRING - 将每一项按字母顺序排列。

技术细节

返回值: 如果成功则返回 TRUE,如果失败则返回 FALSE。
PHP 版本: 4+
更新日志:

排序类型 SORT_NATURAL 和 SORT_FLAG_CASE 是在 PHP 5.4 中新增的。

排序类型 SORT_LOCALE_STRING 是在 PHP 5.3 中新增的。

更多实例

例子 1

返回一个升序排列的数组:

<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

运行实例

例子 2

当两个值相同时如何排序:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

运行实例

例子 3

使用排序参数:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);;
print_r($a1);
print_r($a2);
?>

运行实例

例子 4

合并两个数组,并按数字降序排列:

<?php
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);;
print_r($num);
?>

运行实例