php - php 数组中的排序

标签 php mysql arrays

我的 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/

相关文章:

php - Array_merge_recursive 未正确合并(php)

java - 虽然没有超过索引,但索引出现错误

arrays - 如何使用存储在自定义聚合物 2.0 元素属性中的对象

php - Laravel 5,Behat,Mink : base_url parameter is not read from behat. yml

PHP 扩展未通过 httpd 找到,但可以从 CLI 找到,具有相同的 php.ini

mysql - SQL通过电子邮件字段获取一次性客户

mysql - 自动更新队列优先级

php - 网站将 php 文件下载到浏览器而不是运行它

php - 在哪里可以找到 php.ini?

php - 如何在 PHP 中的函数中获取函数名?