dato l'array
con chiave2 "int" e chiave uno "text".codice:nomearray["chiave1"]["chiave2"]["chiave3"]
come ordianare in base a chiave2 discendente e a chiave 1 crescente?
credo si debba utilizzare array_multisort... ma cosa scrivere?
dato l'array
con chiave2 "int" e chiave uno "text".codice:nomearray["chiave1"]["chiave2"]["chiave3"]
come ordianare in base a chiave2 discendente e a chiave 1 crescente?
credo si debba utilizzare array_multisort... ma cosa scrivere?
guarda questo esempio
codice:<?php $ar = array(array ("10", 100, 100, "a"), array (1, 3, "2", 1)); array_multisort($ar[0], SORT_ASC, SORT_STRING, $ar[1], SORT_NUMERIC, SORT_DESC); ?>ciaoIn questo esempio, dopo l'ordinamento, il primo array conterrà 10, 100, 100, "a" (ordinato come stringhe ordine crescente), e il secondo conterrà 1, 3, "2", 1 (ordinati come numeri, in ordine decrescente).![]()
***edo***
anzi ancora meglio, guarda questo
qui trovi la discussione completacodice:function cmp ($a, $b) { global $numero_colonna; return strcasecmp($a[$numero_colonna], $b[$numero_colonna]); } $mioarray[0][0] = 1; $mioarray[0][1] = 'pippo'; $mioarray[0][2] = 'cane'; $mioarray[1][0] = 2; $mioarray[1][1] = 'minni'; $mioarray[1][2] = 'topo'; $mioarray[2][0] = 3; $mioarray[2][1] = 'gambadilegno'; $mioarray[2][2] = 'gatto'; $numero_colonna=2; usort($mioarray, "cmp");
***edo***
ok.
grazie.
devi lavorare sulla funzione cmp(), la tua sarà del tipo
codice:function cmp ($a, $b) { if (($a[1] - $b[1]) == 0) return strcasecmp($a[0], $b[0]); else return ($a[1] - $b[1]); }
***edo***