function cmp($a, $b)
{
$a1=substr($a,4);
$b1=substr($b,4);
if ($a1 == $b1) {
return 0;
}
return ($a1 < $b1) ? -1 : 1;
}$arr = array (
"主题ddddddddddd",
"公告ccccccccccc",
"主题ccccccccccc",
"主题bbbbbbbbbbb",
"公告bbbbbbbbbbb",
"置顶bbbbbbbbbbb",
"置顶aaaaaaaaaaa",
"公告aaaaaaaaaaa",
"主题aaaaaaaaaaa"
);
usort($arr, "cmp");foreach ($arr as $key => $value) {
echo "$key: $value\n";
}
{
$a1=substr($a,4);
$b1=substr($b,4);
if ($a1 == $b1) {
return 0;
}
return ($a1 < $b1) ? -1 : 1;
}$arr = array (
"主题ddddddddddd",
"公告ccccccccccc",
"主题ccccccccccc",
"主题bbbbbbbbbbb",
"公告bbbbbbbbbbb",
"置顶bbbbbbbbbbb",
"置顶aaaaaaaaaaa",
"公告aaaaaaaaaaa",
"主题aaaaaaaaaaa"
);
usort($arr, "cmp");foreach ($arr as $key => $value) {
echo "$key: $value\n";
}
function cmp($a, $b)
{
$a1=substr($a,0,4);
$b1=substr($b,0,4);
if ($a1 == $b1) {
$a2=substr($a,4);
$b2=substr($b,4);
if ($a2 == $b2) {
return 0;
}
return ($a2 < $b2) ? -1 : 1;
}
return ($a1 < $b1) ? -1 : 1;
}
$data = array (
"主题ddddddddddd",
"公告ccccccccccc",
"主题ccccccccccc",
"主题bbbbbbbbbbb",
"公告bbbbbbbbbbb",
"置顶bbbbbbbbbbb",
"置顶aaaaaaaaaaa",
"公告aaaaaaaaaaa",
"主题aaaaaaaaaaa"
);
//程序实现:
//1. 给出一个数组
$sort = array("公告", "置顶", "主题");
//2. 与你的数组$data成双层循环
foreach($sort as $key => $value)
{
foreach($data as $key1 =>$value1)
{
if (eregi("^$value*.", $value1)) { //3. 用正则判断
$new[] = $value1; //4. 生成新数组
}
}
}
print "<pre>\r\n";
print_r($data);
print "</pre>\r\n";
print "<pre>\r\n";
print_r($new);
print "</pre>\r\n";?>