Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 15-03-10, 00:59   #1 (permalink)
User
 
L'avatar di Endorama
 
Data di registrazione: Oct 2008
Messaggi: 89
natural sorting senza mantenimento di chiave

Ciao a tutti, prima di tutto mi scuso se questo problema è già stato risolto, ma non ho trovato nulla a riguardo sul forum, e anche google non è stato di grande aiuto

Sto usando in uno script la funzione natsort(), e questo è il risultato:
Codice PHP:
$a = array(10,3,4,5,8,1,9);
natsort($a);

//echo "<pre>", var_dump($a), "</pre>";
array(7) {
  [
5]=>
  
int(1)
  [
1]=>
  
int(3)
  [
2]=>
  
int(4)
  [
3]=>
  
int(5)
  [
4]=>
  
int(8)
  [
6]=>
  
int(9)
  [
0]=>
  
int(10)

Il risultato è l'array ordinato, ma gli indici sono stati mantenuti!!
se possibile vorrei che gli indici fossero rinumerati, arrivando a questo risultato:
Codice PHP:
array(7) {
  [
0]=>
  
int(1)
  [
1]=>
  
int(3)
  [
2]=>
  
int(4)
  [
3]=>
  
int(5)
  [
4]=>
  
int(8)
  [
5]=>
  
int(9)
  [
6]=>
  
int(10)

Sapete come posso fare??

grazie
Endorama non in linea   Rispondi citando
Vecchio 15-03-10, 20:19   #2 (permalink)
User
 
L'avatar di giovandres90
 
Data di registrazione: Dec 2008
Messaggi: 83
Ciao Endorama se devi ordinare un array allora devi fare cosi:

Codice PHP:
for($i=0;$i<count($a)-1;$i++)
{
  for(
$j=$i+1;$j<count($a);$j++)
   {
      if(
$a[$i]>$a[$j])//cosi ordini in maniera cresciente
       
{
         
$var_temp=$a[$i];
         
$a[$i]=$a[$j];
         
$a[$j]=$var_temp;
       }
   }

Se devi fare in maniera decresciente cambi la condizione del if(), se non ho capito male era quel che volevi.
__________________
Realizzo script php-Mysql- creazione siti web
giovandres90 non in linea   Rispondi citando
Vecchio 16-03-10, 00:18   #3 (permalink)
User
 
L'avatar di Endorama
 
Data di registrazione: Oct 2008
Messaggi: 89
Alla fine ho risolto così: semplice, pulito e efficace!!!
Codice PHP:
$values array_values($var);
natsort($values); 
Endorama non in linea   Rispondi citando
Vecchio 16-03-10, 00:20   #4 (permalink)
User
 
L'avatar di giovandres90
 
Data di registrazione: Dec 2008
Messaggi: 83
Ottimo!.
__________________
Realizzo script php-Mysql- creazione siti web
giovandres90 non in linea   Rispondi citando
Rispondi
Tags:



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:26.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.