(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 )