嗨,
我有一个这样的函数:
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'));
我想按"顺序"而不是文件名对生成的链接进行排序,所以我的 html 看起来像这样:
<a href="index">My Page</a>
<a href="about">About</a>
<a href="sitemap">Site Map</a>
我以为array_multisort会做到这一点,但我什至不知道把它放在哪里。有什么想法吗?
谢谢。
您可以使用数组函数 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']
排序。
你的代码有点混乱,我希望我理解你的例子是正确的。如果没有,我希望我的例子能帮助你写你自己的!