Funksie array_multisort

Die funksie array_multisort laat toe om verskeie skikkings gelyktydig te sorteer of om komplekse sortering van multidimensionele skikkings volgens een of meer kriteria uit te voer.

Sintaksis

phparray_multisort(
  array1, 
  [sorting_order = SORT_ASC], 
  [sorting_type = SORT_REGULAR], 
  array2, 
  array3, 
  ...
);

Parameter sorting_order

Die parameter sorting_order spesifiseer die rigting van die sortering. Hier is sy waardes:

Parameter Beskrywing
SORT_ASC Sortering in stygende volgorde (verstekwaarde).
SORT_DESC Sortering in dalende volgorde.

Parameter sorting_type

Die parameter sorting_type spesifiseer die tipe vergelyking van elemente. Hier is sy waardes:

Parameter Beskrywing
SORT_REGULAR Gewone vergelyking van elemente (verstek).
SORT_NUMERIC Numeriese vergelyking van elemente.
SORT_STRING Stringvergelyking van elemente.
SORT_LOCALE_STRING Stringvergelyking met inagneming van die huidige landskode.
SORT_NATURAL Natuurlike sortering van snare (soos in 'n lêerbestuurder).
SORT_FLAG_CASE Word gekombineer met SORT_STRING of SORT_NATURAL vir 'n hoofletter-ongevoelige sortering.

Voorbeeld

Sortering van twee skikkings met spesifikasie van parameters:

php<?php
  $numbers = [10, 2, 15, 4];
  $letters = ['b', 'a', 'd', 'c'];
  array_multisort(
    $numbers, SORT_DESC, SORT_NUMERIC,
    $letters, SORT_ASC, SORT_STRING
  );
  print_r($numbers);
  print_r($letters);
?>

Resultaat van die kode-uitvoering:

php[15, 10, 4, 2]
['d', 'b', 'c', 'a']

Voorbeeld

Sortering van 'n multidimensionele skikking volgens 'n gespesifiseerde veld:

php<?php
  $data = [
    ['name' => 'John', 'age' => 25],
    ['name' => 'Alice', 'age' => 22],
    ['name' => 'Bob', 'age' => 30]
  ];
  
  $ages = array_column($data, 'age');
  array_multisort($ages, SORT_ASC, $data);
  print_r($data);
?>

Resultaat van die kode-uitvoering:

php[
  ['name' => 'Alice', 'age' => 22],
  ['name' => 'John', 'age' => 25],
  ['name' => 'Bob', 'age' => 30]
]

Voorbeeld

Sortering van 'n multidimensionele skikking volgens twee gespesifiseerde velde:

php<?php
  $data = [
    ['name' => 'John', 'age' => 25],
    ['name' => 'alice', 'age' => 22],
    ['name' => 'Bob', 'age' => 30]
  ];
  
  $names = array_column($data, 'name');
  $ages = array_column($data, 'age');
  array_multisort(
    $names, SORT_ASC, SORT_STRING | SORT_FLAG_CASE,
    $ages, SORT_DESC,
    $data
  );
  print_r($data);
?>

Resultaat van die kode-uitvoering:

php[
  ['name' => 'alice', 'age' => 22],
  ['name' => 'Bob', 'age' => 30],
  ['name' => 'John', 'age' => 25]
]

Voorbeeld

Natuurlike sortering van snare:

php<?php
  $files = ['file1.txt', 'file10.txt', 'file2.txt'];
  array_multisort($files, SORT_ASC, SORT_NATURAL);
  print_r($files);
?>

Resultaat van die kode-uitvoering:

php['file1.txt', 'file2.txt', 'file10.txt']

Voorbeeld

Hoofletter-ongevoelige sortering:

php<?php
  $words = ['Apple', 'banana', 'cherry', 'apricot'];
  array_multisort($words, SORT_ASC, SORT_STRING | SORT_FLAG_CASE);
  print_r($words);
?>

Resultaat van die kode-uitvoering:

php['Apple', 'apricot', 'banana', 'cherry']

Sien ook

  • funksie sort,
    wat volgens stygende elemente sorteer
  • funksie rsort,
    wat volgens dalende elemente sorteer
  • funksie ksort,
    wat volgens stygende sleutels sorteer
  • funksie krsort,
    wat volgens dalende sleutels sorteer
  • funksie asort,
    wat volgens stygende elemente sorteer met bewaring van sleutels
  • funksie arsort,
    wat volgens dalende elemente sorteer met bewaring van sleutels
  • funksie natsort,
    wat op 'n natuurlike wyse sorteer
  • funksie natcasesort,
    wat op 'n natuurlike wyse sorteer sonder hooflettergevoeligheid
  • funksie usort,
    wat volgens 'n callback sorteer
  • funksie uksort,
    wat volgens 'n callback volgens sleutels sorteer
  • funksie uasort,
    wat volgens 'n callback sorteer met bewaring van sleutels