您好,
我有这样的功能:
function column_links() {
$column = scandir("content");
foreach ($column as $value) {
$stvalue = str_replace(".php", "", $value);
echo "<a href=\"{$stvalue}\">{$GLOBALS['tags'][$stvalue][title]}</a>";
}
}
这是我的变量:
define('title', 0);
define('desc', 1);
define('order', 2);
$tags = array(
'index' => array('My Page', 'this is a description', '1'),
'about' => array('About', 'this is a description', '2'),
'sitemap' => array('Site Map', 'this is a description', '3'));
我想通过&#34; order&#34;对生成的链接进行排序。而不是文件名,所以我的HTML看起来像这样:
<a href="index">My Page</a>
<a href="about">About</a>
<a href="sitemap">Site Map</a>
我认为array_multisort可以解决这个问题,但我甚至无法弄清楚把它放在哪里。有什么想法吗?
谢谢。
答案 0 :(得分:0)
您可以使用数组函数usort来定义自己的排序!
它的工作方式是编写自己的函数来确定如何对数组进行排序。该函数应返回小于,等于或大于零的整数,以确定第一个参数与第二个参数的比较。
例如:
我编写了一个名为order_sort
的自定义函数,用于比较['order']
个键。
function order_sort($a, $b) {
if ($a['order'] > $b['order'])
return 1;
if ($a['order'] < $b['order'])
return -1;
return 0;
}
然后我可以在我的数组上调用usort来使用我的自定义函数对其进行排序。
usort($tags, 'order_sort');
它的键将被丢弃,数组将按['order']
排序。
您的代码有点令人困惑,我希望我理解您的示例。如果没有,我希望我的例子帮助你写自己的!