例如:
$array = ("1", "2", "3", "4", "5");
现在我想排在第3位,结果如下:
$array = ("3", "1", "2", "4", "5");
答案 0 :(得分:1)
如果要对除1之外的所有数组进行排序,请尝试以下方法:
function cmpToTop($a, $b){
if($a === '3') return -1; //Change comparison value
if($b === '3') return 1; //Change comparison value
if($a === $b) return 0;
return ($a < $b) ? -1 : 1;
}
$a = array('3', '2', '5', '6', '3', '1');
cmpToTop($a, "cmp"); //Result : array('3', '3', '1', '2', '5', '6')
答案 1 :(得分:0)
对于圈子移动使用:
$array = array('1', '2', '3', '4', '5');
while($array[0] != '3')
array_push($array, array_shift($array));
答案 2 :(得分:0)
您只需存储要放在顶部的数字;
将每个数字向后移动一步;
然后将存储的号码放在首位。
答案 3 :(得分:0)
我希望有人会有更好的方法来做到这一点,因为这似乎是一个简单的解决方法,但这个功能会起作用:
<?php
$arrayData = array(1, 2, 3, 4);
echo "<pre>"; print_r($arrayData); echo "</pre>";
$arrayData = moveToTop($arrayData, 2);
echo "<pre>"; print_r($arrayData); echo "</pre>";
function moveToTop($someArray, $key){
$tmp = $someArray[$key];
unset($someArray[$key]);
array_unshift($someArray, $tmp);
return array_values($someArray);
}
?>
结果是:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
Array
(
[0] => 3
[1] => 1
[2] => 2
[3] => 4
)
答案 4 :(得分:0)
$a = ("1", "2", "3", "4", "5");
foreach($a as $k => $v)
{
if($v == 3)
{
array_unshift($a,$v);
unset($a[$k]);
}
}
print_r($a);
所以,关于标准的信息有限。