array_multisort

(PHP 4, PHP 5, PHP 7)

array_multisort�Զ��������ά�����������

˵��

array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] ) : bool

array_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(101001000);
$ar2 = array(1324);
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"11100100"a"),
       array(   
1,  2"2",   3,   1)
      );
array_multisort($ar[0], SORT_ASCSORT_STRING,
                
$ar[1], SORT_NUMERICSORT_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($volumeSORT_DESC$editionSORT_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_lowercaseSORT_ASCSORT_STRING$array);

print_r($array);
?>

�������̻������

Array
(
    [0] => Alpha
    [1] => atomic
    [2] => bank
    [3] => Beta
)

�μ�