Ordinare array in base alla lunghezza dei valori

c02y

Utente Attivo
30 Nov 2012
30
0
0
Devo ordinare un array in base alla lunghezza dei valori.

Array ( [0] => gianni [1] => alberto [2] => luca [3] => vincenzo [4] => annamaria )

So che esiste la funzione asort, ma quest'ultima ordina ordina l'array in ordine crescente in base al valore degli elementi.

Qualcuno sa aiutarmi?:D
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova così

PHP:
<?php
//Array ( [0] => gianni [1] => alberto [2] => luca [3] => vincenzo [4] => annamaria ) 
$nomi[0]="gianni";
$nomi[1]="alberto";
$nomi[2]="luca";
$nomi[3]="vincenzo";
$nomi[4]="annamaria";
$n=count($nomi);
for($k=0; $k< ($n-1);$k++){
	for($j=($k+1); $j <$n;$j++){
		if(strlen($nomi[$k]) > strlen($nomi[$j])){
			$tr=$nomi[$j];//visto che non esiste in php la funzione swap
			$nomi[$j]=$nomi[$k];
			$nomi[$k]=$tr;
		}
	}
}
//**test
foreach($nomi as $ch => $val){
	echo "$val <br />";
}
?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Testato il ciclo di Borgo che ordina in modo crescente propongo un alternativa in ordine decrescente
PHP:
<?php
$nomi = array();
$nomi[0] = "gianni";
$nomi[1] = "alberto";
$nomi[2] = "luca";
$nomi[3] = "vincenzo";
$nomi[4] = "annamaria";

foreach ($nomi as $key => $value) {
    $nomi[strlen($value)] = $value;
    unset($nomi[$key]);
}
krsort($nomi);
var_dump($nomi);
?>
non ho commentato ma sono poche righe :dormo:
 

c02y

Utente Attivo
30 Nov 2012
30
0
0
ciao
prova così

PHP:
<?php
//Array ( [0] => gianni [1] => alberto [2] => luca [3] => vincenzo [4] => annamaria ) 
$nomi[0]="gianni";
$nomi[1]="alberto";
$nomi[2]="luca";
$nomi[3]="vincenzo";
$nomi[4]="annamaria";
$n=count($nomi);
for($k=0; $k< ($n-1);$k++){
	for($j=($k+1); $j <$n;$j++){
		if(strlen($nomi[$k]) > strlen($nomi[$j])){
			$tr=$nomi[$j];//visto che non esiste in php la funzione swap
			$nomi[$j]=$nomi[$k];
			$nomi[$k]=$tr;
		}
	}
}
//**test
foreach($nomi as $ch => $val){
	echo "$val <br />";
}
?>

Testato il ciclo di Borgo che ordina in modo crescente propongo un alternativa in ordine decrescente
PHP:
<?php
$nomi = array();
$nomi[0] = "gianni";
$nomi[1] = "alberto";
$nomi[2] = "luca";
$nomi[3] = "vincenzo";
$nomi[4] = "annamaria";

foreach ($nomi as $key => $value) {
    $nomi[strlen($value)] = $value;
    unset($nomi[$key]);
}
krsort($nomi);
var_dump($nomi);
?>
non ho co/mmentato ma sono poche righe :dormo:

Ragazzi grazie per le risposte, però mi servirebbe un metodo dinamico, perché i nomi nell'array cambiano, non sono sempre gli stessi
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Ordinare array in base al valore PHP 7
R Ordinare array in base al valore e alla key PHP 1
G Ordinare un array multidimensionale PHP 4
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 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
S ordinare array di date PHP 4
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