Array multisort(): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '== array_multisort == (PHP 4, PHP 5, PHP 7, PHP 8) array_multisort — Sorterar flera eller flerdimensionella arrayer == Beskrivning == array_multisort( array &$array1, mixed $array1_sort_order = SORT_ASC, mixed $array1_sort_flags = SORT_REGULAR, mixed ...$rest ): bool array_multisort() kan användas för att sortera flera arrayer samtidigt eller en flerdimensionell array efter en eller flera dimensioner. Associativa (sträng) nycklar kommer att bibeh...')
 
 
(3 mellanliggande sidversioner av samma användare visas inte)
Rad 82: Rad 82:


== Se även ==
== Se även ==
; usort() - Sorterar en array efter värden med en användardefinierad jämförelsefunktion
; [[usort()]] - Sorterar en array efter värden med en användardefinierad jämförelsefunktion
; Jämförelse av arraysorteringsfunktioner
; [[Sortering av Arrayer]]
[[Kategori:Php]]
[[Kategori:Array]]

Nuvarande version från 11 augusti 2024 kl. 05.27

array_multisort

(PHP 4, PHP 5, PHP 7, PHP 8)

array_multisort — Sorterar flera eller flerdimensionella arrayer

Beskrivning

array_multisort(

   array &$array1,
   mixed $array1_sort_order = SORT_ASC,
   mixed $array1_sort_flags = SORT_REGULAR,
   mixed ...$rest

): bool array_multisort() kan användas för att sortera flera arrayer samtidigt eller en flerdimensionell array efter en eller flera dimensioner.

Associativa (sträng) nycklar kommer att bibehållas, men numeriska nycklar kommer att återindexeras.

Notera:

Om två element jämförs som lika behåller de sin ursprungliga ordning. Före PHP 8.0.0 var deras relativa ordning i den sorterade arrayen odefinierad.

Notera:

Återställer arrayens interna pekare till det första elementet.

Parametrar

array1
En array som sorteras.
array1_sort_order
Den ordning som används för att sortera det föregående arrayargumentet. Antingen SORT_ASC för att sortera stigande eller SORT_DESC för att sortera fallande.

Detta argument kan bytas ut mot array1_sort_flags eller utelämnas helt, i vilket fall SORT_ASC antas.

array1_sort_flags
Sorteringsalternativ för det föregående arrayargumentet:

Sorteringstypflaggor:

  • SORT_REGULAR - jämför objekt normalt (ändra inte typer)
  • SORT_NUMERIC - jämför objekt numeriskt
  • SORT_STRING - jämför objekt som strängar
  • SORT_LOCALE_STRING - jämför objekt som strängar, baserat på aktuell lokal inställning. Använder lokalinställningen, som kan ändras med setlocale()
  • SORT_NATURAL - jämför objekt som strängar med "naturlig ordning" som natsort()
  • SORT_FLAG_CASE - kan kombineras (bitvis OR) med SORT_STRING eller SORT_NATURAL för att sortera strängar utan att skilja på stora och små bokstäver

Detta argument kan bytas ut mot array1_sort_order eller utelämnas helt, i vilket fall SORT_REGULAR antas.

rest
Fler arrayer, eventuellt följt av sorteringsordning och flaggor. Endast element som motsvarar motsvarande element i tidigare arrayer jämförs. Med andra ord är sorteringen lexicografisk.

Returvärden

Returnerar true vid framgång eller false vid misslyckande.

Exempel

Exempel #1 Sortera flera arrayer

<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

I detta exempel kommer den första arrayen att innehålla 0, 10, 100, 100 efter sorteringen. Den andra arrayen kommer att innehålla 4, 1, 2, 3. Posterna i den andra arrayen som motsvarar de identiska posterna i den första arrayen (100 och 100) sorterades också.

Exempel #2 Sortera en flerdimensionell array

<?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);
?>

I detta exempel kommer den första arrayen att transformeras till "10", 100, 100, 11, "a" (den sorterades som strängar i stigande ordning). Den andra kommer att innehålla 1, 3, "2", 2, 1 (sorterade som nummer, i fallande ordning).

Se även

usort() - Sorterar en array efter värden med en användardefinierad jämförelsefunktion
Sortering av Arrayer