価格で並べ替えてから、同じ価格のものを並べ替える必要があります。価格順で並べ替えました。私が持っている配列とソートは次のとおりです。
<?php
$a = array(
1 => array('price' => 9.25, 'timestamp_added' => 1301945848, 'name' => 'pencils'),
4 => array('price' => 19.15, 'timestamp_added' => 1299267448, 'name' => 'crayon box'),
15 => array('price' => 4.25, 'timestamp_added' => 1299785848, 'name' => 'markers'),
2 => array('price' => 4.28, 'timestamp_added' => 1299785848, 'name' => 'eraser'),
44 => array('price' => 13.99, 'timestamp_added' => 1299872248, 'name' => 'trapper'),
32 => array('price' => 9.25, 'timestamp_added' => 1299872248, 'name' => 'notebook'),
14 => array('price' => 13.99, 'timestamp_added' => 1301945848, 'name' => 'sharpener'),
5 => array('price' => 15.01, 'timestamp_added' => 1299872248, 'name' => 'calculator'),
60 => array('price' => 15.01, 'timestamp_added' => 1397433600, 'name' => 'calculator'),
70 => array('price' => 15.01, 'timestamp_added' => 1293840000, 'name' => 'calculator'),
80 => array('price' => 15.01, 'timestamp_added' => 1363132800, 'name' => 'calculator')
);
function printList($a) {
echo "<br><br> Printing the array: <br>";
foreach ($a as $key => $value) {
echo "<br /> Product ID $key <b>Price:</b> $" . $value['price'] . " <b>Timestamp:</b> "
. $value['timestamp_added'] . " <b>Name:</b> " . $value['name'] . " <b>Date Added: </b>" . date('M d, Y', $value['timestamp_added']);
}
}
$sortByPrice = function ($a, $b) {
return ($a['price'] >= $b['price']) ? 1 : 0;
};
printList($a);
echo "<br><br>Sorting by price...";
uasort($a, $sortByPrice);
printList($a);
?>
価格が同一の場合、タイムスタンプで並べ替えるにはどうすればよいですか? そうするように sortByPrice 関数を変更しようとしています。2 つの並べ替え関数を使用する必要がありますか?それとも、より優れた並べ替え関数を 1 つ使用する必要がありますか? どうすればいいですか?