Array (
[book] => Array (
[0] => Array
( [0] => 1
[1] => book one
[2] => Fantasy/Horror
[4] => 8.9 )
[1] => Array (
[0] => 2
[1] => book two
[2] => Comedy
[4] => 8.3 ) ) )
我想通过ID将此数组对desc进行排序。
以后也按标题。数组变量是
$book
,所以我写了
ksort($book)
也尝试了
arsort
由于某种原因它不起作用? 是因为数组吗?
如果您能够:由于速度和灵活性(在适当的位置使用DB引擎),因此请使用SQL排序,仅在您确实需要的情况下使用阵列功能! :-) 做类似:
SELECT ID,Book name,Genre, ratings ORDER BY ID DESC
如果您仍然必须使用数组排序
,请在php中使用usort():
<?php
//Book array
$bookArray['book'][0] = array(2, 'book one', 'Fantasy/Horror', 8.9);
$bookArray['book'][1] = array(1, 'book two ', 'Comedy', 8.3);
function sortByIndex($a, $b) {
return $a[0] - $b[0];
}
usort($bookArray['book'], 'sortByIndex');
echo 'RESULT=' . print_r($bookArray,true);
?>
对此输出的反应: 结果= array([book] => array([0] => array([0] => 1 [1] =>书2 [2] => comedy [3] => 8.3)[1] => array ([0] => 2 [1] =>一本书[2] =>幻想/恐怖[3] => 8.9))) 书二是第一位出现的,因为在我的示例中,我将第一个索引设置为1个带有价值'book二'的索引。
最简单的方法是将其添加到您的SQL语句中:ORDER BY id DESC
同样,如果您真的想知道如何在PHP中进行此操作,那么您将这样做:
function cmp($a, $b)
{
if ($a[0] == $b[0]) {
return 0;
}
return ($a[0] > $b[0]) ? -1 : 1;
}
usort($array['book'], "cmp");
您需要更改选择语句。应该是这样的 -
select id,bookname,genre,ratings from yourtable ORDER BY id DESC,bookname;