я есть массив с некоторыми значениями, которые в настоящее время объявленных на лету:сортировки мульти-х мерном массиве PHP
// a for loop that finds elements from source
$array[] = array($fruit, $color, $shape, $price);
позже я есть другой цикл, который отображает элементы в массиве:
for($j = 0; $j < sizeof($array); $j++) {
echo $array[$j][0]." ".$array[$j][1]." ".$array[$j][2]." ".$array[$j][3]."
".$array[$j][4];
}
Я могу отобразить всю информацию, которую хочу получить должным образом, однако я хочу отсортировать массив перед отображением на основе цены $. например
Orange orange round £.6
Mango yellow oval £.9
Apple red round £.4
Я хочу это в следующем виде
Apple red round £.4
Orange orange round £.6
Mango yellow oval £.9
Использование uasort: Перед:
Array ([0] => Array ([0] => Orange [1] => red [2] => round [3] => .6)
[1] => Array ([0] => Mango [1] => yellow [2] => oval [3] => .9)
[2] => Array ([0] => Apple [1] => red [2] => round [3] => .4));
функция, обеспечиваемая:
function my_cmp_func($a, $b) {
if($a[3] == $b[3]){
return -1*strcmp($a[4], $b[4]); // another column added for comparison
}
return -1*strcmp($a[3], $b[3]);
}
uasort($array, 'my_cmp_func');
print_r($array);
Есть куча примеров по адресу: // PHP .net/manual/en/function.array-multisort.php – Ynhockey