Ordinare un array multidimensionale

Gae

Utente Attivo
15 Mar 2021
36
2
8
Salve, ho un array multidimensionale che devo ordinare per una o più colonne
Pensavo di poter utilizzare array_multisort() ma non mi funziona, sicuramente sbaglio io qualcosa

Di seguito il codice
Codice:
$ga = array(
    array('id'=>1, 'nome'=>'Mario', 'cognome'=>'Rossi'),
    array('id'=>2, 'nome'=>'Paolo', 'cognome'=>'Bianchi'),
    array('id'=>3, 'nome'=>'Luca', 'cognome'=>'Neri'),
    array('id'=>4, 'nome'=>'Claudia', 'cognome'=>'Bianchi'),
);

$id = array_column($ga, 'id');
$no = array_column($ga, 'nome');
$co = array_column($ga, 'cognome');

Prova 1
$ga = array_multisort($id, SORT_DESC, $co, SORT_DESC, $no, SORT_ASC, $ga);

Prova 2
$ga = array_multisort( array_column($ga, 'id'), SORT_ASC, array_column($ga, 'cognome'), SORT_ASC, $ga);
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
vedi se ti garba
PHP:
require_once 'myUtils/show_vars.php';

$ga = array(
      array('id'=>1, 'nome'=>'Mario',   'cognome'=>'Rossi'),
      array('id'=>2, 'nome'=>'Paolo',   'cognome'=>'Bianchi'),
      array('id'=>3, 'nome'=>'Luca',    'cognome'=>'Neri'),
      array('id'=>4, 'nome'=>'Claudia', 'cognome'=>'Bianchi'),
);

echo "<h3>ga</h3>".show_var( $ga )."<br />";

foreach ($ga as $key => $row) {
    $sortKey[$key] = $ga[$key]['cognome'].$ga[$key]['nome'];
}
echo "<h3>sortKey</h3>".show_var( $sortKey )."<br />";

array_multisort($sortKey, SORT_DESC, $ga);    // ordine DESC per cognome nome

echo "<h3>sorted ga</h3>".show_var( $ga )."<br />";

1651407864470.png


ps, show_vars lo trovi negli snippets di php
 
  • Like
Reactions: Gae

Gae

Utente Attivo
15 Mar 2021
36
2
8
Grazie, funziona e, tramite il tuo esempio, ho capito come si usa il multisort.
Una cortesia, ho provato a creare un indice con ID e Cognome ma m ritorna errore perchè i tipi di campo sono diversi
ID numerico, nome carattere
Ho provato anteponendo (str) ma non funziona
$sortKey[$key] = (str)$ga[$key]['ID'].$ga[$key][cognome'];
 
Discussioni simili
Autore Titolo Forum Risposte Data
P [PHP] ordinare un array multidimensionale in modo personalizzato PHP 2
M Ordinare array (multidimensionale)? PHP 3
M Ordinare array multidimensionale con esclusioni Javascript 0
borgo italia ordinare un array bidimensionale Snippet PHP 0
C Ordinare array in base alla lunghezza dei valori PHP 3
C Ordinare array multidimensionali PHP 0
C Ordinare alfabeticamente un array e ordinare un secondo array in funzione del primo. Javascript 12
F Ordinare array bidimensionale PHP 2
R Ordinare array in base al valore PHP 7
S ordinare array di date PHP 4
R Ordinare array in base al valore e alla key PHP 1
T come ordinare dei record recuperati da due tabelle MySQL 0
otto9due Ordinare option di una select Javascript 5
felino [C#] Ordinare un livello specifico di un custom tree .NET Framework 0
M Ordinare una query join PHP 2
L [PHP] ordinare per data PHP 3
F [HTML] Google fogli ordinare per colonne HTML e CSS 0
T [PHP] ordinare un campo varchar che contiene numeri PHP 6
Trapano Query in php come ordinare per data e anche per ora PHP 7
L [PHP] ordinare xml PHP 0
Trapano [HTML] Ordinare indirizzi, creando un percorso HTML e CSS 3
M Ordinare i valori in query group by PHP 4
L Ordinare articoli dentro categorie e tag in ordine alfabetico wordpress WordPress 1
ste80 ordinare dati da file di testo PHP 3
R Ordinare alfabeticamente partendo da una PAROLA MySQL 0
M Ordinare visualizzazione record tramite form con input "text" PHP 2
xone Ordinare tramite menù a tendina i risultati di una query già stampati MySQL 0
M [PHP]Ordinare dati secondo prezzo PHP 2
zighy ordinare risultati specifici PHP 20
D Ordinare i risultati di una query dalla fine della tabella MySQL 13
ivarello Ordinare dati Var in ordine numerico PHP 9
C Ordinare parole in base alla lunghezza PHP 1
Trapano Ordinare risultati MySQL 6
T.W. Aiuto Per Ordinare Risultati Ricerca Da File CSV PHP 2
valient13 ordinare in ordine decrescente la lista PHP 2
P [ASP] [Grauito] Ordinare categoria (era: reder by Cat) Offerte e Richieste di Lavoro e/o Collaborazione 1
G Ordinare query PHP 2
P Ordinare e impaginare una tabella contemporaneamente Javascript 1
novello88 MySQL ORDER BY [Era: ordinare i risultati di una database MySQL] MySQL 1
Monital ordinare il risultato di una query con variabili unite PHP 32
R Come ordinare gli articoli per data? Webdesign e Grafica 5
Monital ordinare in una tabella risultati query PHP 10
G ordinare i risultati di una query PHP 4
A Ordinare query sql in base ai risultati di ricerca PHP 1
M Ordinare il secondo elemento di uno split() PHP 10
N Ordinare per totali Database 0
G VBA e ordinare celle relativamente in Excel 2007 Windows e Software 0
S - Ordinare files uplodati - PHP 0
frankiedeguello Ordinare file per data di creazione PHP 1
T Ordinare dati di un Recordset [era:Grosso problema, chi mi aiuta?] Classic ASP 2

Discussioni simili