我的 sql 表由 ID、书籍名称、流派和评级组成。目前我的 sql 表中的数组如下所示(输出)
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
由于某种原因它不起作用?是因为数组的原因吗?谢谢!
最佳答案
如果您能够: 使用 SQL 排序,因为速度和灵 active (在适当的地方使用 db-engine)只有在确实需要时才使用数组功能! :-) 做类似的事情:
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);
?>
结果如下: RESULT=Array ( [book] => Array ( [0] => Array ( [0] => 1 [1] => 第二本书 [2] => 喜剧 [3] => 8.3 ) [1] => Array ( [0] => 2 [1] => 第一本书 [2] => 奇幻/恐怖 [3] => 8.9 ) ) )
这里第二本书排在第一位,因为在我的示例中,我将第一个索引设置为 1,值为“第二本书”。
关于php - php 数组中的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15646575/