lorik
lundi 26 septembre 2005 à 20:13
Merci à tous,
C'est vrai que j'ai plein de bouquins Php, à priori (trop ?) bons pour mon niveau, et je ne vais voir dans les docs en ligne que quand je connais le nom de la fonction. Il faut que je m'organise mieux, mais je fais ça à la petite semaine, pour le plaisir et sans formation de base... ce qui ne m'autorise pas à vous emm... à tout bout de champs !
Je crois avoir compris le fonctionnement de la fonction, mais j'ai un bug ! php renvoie un Undefined offset: 0 (et 1 et 2) dans le script de test ci dessous. La fonction ne semble pas en cause, c'est semble t il un pb d'initialisation de variable, mais le tableau fautif ($sorted_arr) est déclaré juste avant, alors je cale un peu.
Si vous pouviez jeter un coup d'oeil, ça serait sympa...
Par avance merci.
CODE
function array_sort($array, $key)
{
for ($i = 0; $i < sizeof($array); $i++)
{
$sort_values[$i] = $array[$i][$key];
}
asort ($sort_values);
reset ($sort_values);
while (list ($arr_key, $arr_val) = each ($sort_values)) {
$sorted_arr[] = $array[$arr_key];
}
return $sorted_arr;
}
$keyword_table = array();
$total2 = array();
$record2 = array();
$sorted_arr=array();
// je remplis le tableau
$record2[0] = "conv3";
$record2[1] = 100;
$record2[2] = 10;
array_push($keyword_table,$record2);
$record2[0] = "conv2";
$record2[1] = 200;
$record2[2] = 20;
array_push($keyword_table,$record2);
$record2[0] = "conv1";
$record2[1] = 10;
$record2[2] = 10;
array_push($keyword_table,$record2);
// je lance la fonction
array_sort($keyword_table, 0); // tri des termes 'conv xx'
// verif du tri (c'est là qu'ça coince !)
$val1=$sorted_arr[0][1];
$val2=$sorted_arr[1][1];
$val3=$sorted_arr[2][1];
echo "<br>".$val1."-".$val2."-".$val3;