3 回答
TA贡献1799条经验 获得超6个赞
您可以使用array_diffwith sort,array_push和array_unshift
$elements = ['start','end'];//start & end elements array
$rest = array_diff($ar, $elements);
sort($rest);//Sorting of the rest items
array_push($rest, $elements[1]);//Push end element
array_unshift($rest, $elements[0]);//Push start element
您可以rsort($rest)用于降序。
现场示例:https : //3v4l.org/GnotC
TA贡献1797条经验 获得超6个赞
尝试这个
$ar = ['apples','blueberries','end','pears','dragonfruit','oranges','start','durian','lychee','rambutan','pineapple','end','start', 'end', 'banana', 'yellow'];
function cmp($a, $b) {
if ($a === $b) {
return 0;
}
if ($a === 'start' || $b === 'end' ) {
return -1;
}
if( $b === 'start' || $a === 'end') {
return 1;
}
return ($a < $b) ? -1 : 1; }
usort($ar,"cmp");
echo implode(', ', $ar);
希望能帮到你
TA贡献1844条经验 获得超8个赞
以下是您的 cmp 函数应该如何。只介绍了几个 if 语句。
function cmp($a, $b) {
if ($a === $b) {
return 0;
}
if ($a === 'start' ) {
return -1;
}
if( $b === 'start' ) {
return 1;
}
if ($a === 'end' ) {
return 1;
}
if ($b === 'end' ) {
return -1;
}
return ($a < $b) ? -1 : 1;
}
- 3 回答
- 0 关注
- 103 浏览
添加回答
举报