(PHP 4, PHP 5, PHP 7)
array_multisort — �Զ��������ά�����������
&$array1
[, mixed $array1_sort_order = SORT_ASC
[, mixed $array1_sort_flags = SORT_REGULAR
[, mixed $...
]]] ) : boolarray_multisort() ��������һ�ζԶ��������������߸���ijһά���ά�Զ�ά�����������
������string���������ֲ��䣬�����ּ����ᱻ����������
Note:
If two members compare as equal, their relative order in the sorted array is undefined.
array1Ҫ����� array��
array1_sort_order
֮ǰ array ����Ҫ���е�˳��
SORT_ASC ��������˳������ SORT_DESC �����½�˳������
�˲������Ժ� array1_sort_flags ������Ҳ������ȫɾ����Ĭ���� SORT_ASC ��
array1_sort_flagsΪ array �����趨ѡ�
�������ͱ�־��
SORT_REGULAR -
����Ŀ����ͨ�������Ƚϣ��������ͣ�
SORT_NUMERIC - �������ִ�С�Ƚ�
SORT_STRING - �����ַ����Ƚ�
SORT_LOCALE_STRING - ���ݵ�ǰ�ı��ػ����ã������ַ����Ƚϡ�
����ʹ�� locale ��Ϣ������ͨ�� setlocale() �Ĵ���Ϣ��
SORT_NATURAL - ���ַ�����"��Ȼ����"������ natsort()
SORT_FLAG_CASE - �������
(��� OR)
SORT_STRING ����
SORT_NATURAL ��Сд�����еķ�ʽ�����ַ�����
�������Ժ� array1_sort_order ��������ʡ�ԣ�Ĭ��������� SORT_REGULAR��
...��ѡ��ѡ����ṩ�������飬������ sort order �� sort flag ֮�� �ṩ�������֮ǰ������Ҫ����ͬ������Ԫ�ء� ����֮�������ǰ��ֵ�˳�����еġ�
�ɹ�ʱ���� TRUE�� ������ʧ��ʱ���� FALSE��
| �汾 | ˵�� |
|---|---|
| 5.4.0 |
array1_sort_flags ���� SORT_NATURAL �� SORT_FLAG_CASE ѡ�
|
| 5.3.0 |
array1_sort_flags ����ѡ�� SORT_LOCALE_STRING��
|
Example #1 �����������
<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);
var_dump($ar1);
var_dump($ar2);
?>
�������������һ���������� 0�� 10�� 100�� 100�� �ڶ����������� 4��1�� 2�� 3�� �ڶ������������Ŀ��Ӧ��һ�������Ҳ����������100 �� 100����
array(4) {
[0]=> int(0)
[1]=> int(10)
[2]=> int(100)
[3]=> int(100)
}
array(4) {
[0]=> int(4)
[1]=> int(1)
[2]=> int(2)
[3]=> int(3)
}
Example #2 ���������
<?php
$ar = array(
array("10", 11, 100, 100, "a"),
array( 1, 2, "2", 3, 1)
);
array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>
�������������һ�����齫��� "10"��100��100��11��"a"���������ַ������������У����ڶ������齫���� 1, 3, "2", 2, 1�������������Խ������У���
array(2) {
[0]=> array(5) {
[0]=> string(2) "10"
[1]=> int(100)
[2]=> int(100)
[3]=> int(11)
[4]=> string(1) "a"
}
[1]=> array(5) {
[0]=> int(1)
[1]=> int(3)
[2]=> string(1) "2"
[3]=> int(2)
[4]=> int(1)
}
}
Example #3 �����ݿ�����������
������ data �����е�ÿ����Ԫ��ʾһ�����е�һ�С����ǵ��͵����ݿ��¼�����ݼ��ϡ�
�����е��������£�
volume | edition
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7
����ȫ���������Ϊ data �������С���ͨ����ͨ��ѭ�������ݿ�ȡ�õĽ�������� mysql_fetch_assoc()��
<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>
������� volume ���������� edition ��������
�������˰������е����飬���� array_multisort() ��Ҫһ�������е����飬��������´�����ȡ���У�Ȼ������
<?php
// ȡ���е��б�
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
// �����ݸ��� volume �������У����� edition ��������
// �� $data ��Ϊ���һ����������ͨ�ü�����
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
���ݼ��������ź����ˣ�������£�
volume | edition
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7
Example #4 �����ִ�Сд��ĸ����
SORT_STRING ��
SORT_REGULAR
�������ִ�Сд��ĸ�ģ���д��ĸ������Сд��ĸ֮ǰ��
Ҫ���в����ִ�Сд������Ҫ����ԭ�����Сд��ĸ����������
<?php
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);
array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);
print_r($array);
?>
�������̻������
Array
(
[0] => Alpha
[1] => atomic
[2] => bank
[3] => Beta
)