php-如何通过键对数组进行排序

时间:2018-07-09 07:43:34

标签: php arrays sorting

我的行程/游览页面包含节数:标题。说明,正文,guide_details,页脚

我想让我的客户设置顺序-哪个部分将出现在第一,第二,第三...

所以我有一个来自数据库的数组,其中包含每个部分的编号。该数字是该部分的位置

表itin_oreder:

clientID     header    description  body  guide_details footer
   6           1            3        2          4          5

$query = "SELECT * FROM itin_oreder WHERE client= 6 ";
$res = mysql_query($query);

我还有一个数组,其中包含每个部分的内容:

itinContent = array ("header" => $header, "description" => $description....)

如何按客户端设置的顺序打印数组itinContent?

1 个答案:

答案 0 :(得分:2)

您要寻找的东西叫做“ uksort”(uksort in PHP-MANUAL

假设您有itin_oreder数组以及该方案的顺序。您可以通过该全局数组构建比较功能。

这是示例代码:

<?php

$init_order= array("clientID"=>6, "header"=>3, ...);
$initContent = array ("header" => $header, "description" => $description....)

function sortByInitOrder($a,$b)
{
        global $init_order;
        return ($init_order[$a] > $init_order[$b]);
}

uksort($initContent, 'sortByInitOrder');
echo print_r($initContent, true);

如果只想打印数组值:

foreach($initContent as $key => $value)
{
  echo "$value \n";
}