我有3个变量,包含3个不同的值(由admin管理)。
$tab_download_pos = 2;
$tab_download_title = "Download";
$tab_overview_pos = 1;
$tab_overview_title = "Overview";
$tab_faq_pos = 3;
$tab_faq_title = "FAQ";
现在我有3个标签,我想根据上面变量的值对标签进行排序。
三个标签是
1.Overview
2.Download
3.Faq
我是以这种方式开始的
$tab_arr = sort(array($tab_download_pos,$tab_overview_pos,$tab_faq_pos));
我做了foreach循环,但后来我迷路了。 我想根据我从后端获得的变量值对选项卡进行排序。
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:1)
无需排序。只需要将它们放在一个数组中,用ksort按键对它进行排序,然后迭代它们:
$a = array();
$a[$tab_download_pos] = $tab_download_title;
$a[$tab_overview_pos] = $tab_overview_title;
$a[$tab_faq_pos] = $tab_faq_title;
ksort($a);
foreach($a as $p => $title) {
echo "$p.$title\n";
}
答案 1 :(得分:1)
由于数字可能没有差距,我建议创建一个包含标题和位置的数据结构,然后在位置上对其进行排序:
$tab_download_pos = 2;
$tab_download_title = "Download";
$tab_overview_pos = 1;
$tab_overview_title = "Overview";
$tab_faq_pos = 4;
$tab_faq_title = "FAQ";
$tab_arr = array(
array( "pos" => $tab_download_pos, "title" => $tab_download_title ),
array( "pos" => $tab_overview_pos, "title" => $tab_overview_title ),
array( "pos" => $tab_faq_pos, "title" => $tab_faq_title ),
);
usort($tab_arr, function ($a, $b) { return $a["pos"] - $b["pos"]; });
然后数组看起来像这样:
array (
array (
'pos' => 1,
'title' => 'Overview',
),
array (
'pos' => 2,
'title' => 'Download',
),
array (
'pos' => 4,
'title' => 'FAQ',
),
)
答案 2 :(得分:0)
这是你的代码。不要将sort保存到变量中,它只给出布尔值。以这种方式做到这一点
<?php
$tab_download_pos = 2;
$tab_download_title = "Download";
$tab_overview_pos = 1;
$tab_overview_title = "Overview";
$tab_faq_pos = 3;
$tab_faq_title = "FAQ";
$tab_arr = [$tab_download_pos,$tab_overview_pos,$tab_faq_pos];
sort($tab_arr);
print_r($tab_arr);
结果:
Array ( [0] => 1 [1] => 2 [2] => 3 )