我需要从数组中取出一个元素,并通过移动其余元素来更改它在数组中的位置。
这是执行此操作的函数。第一个参数是工作数组。第二个是待移动元素的位置,第三个是将元素移动到的位置。
该函数返回修改后的数组。
<?php
function array_move_elem($array, $from, $to) {
if ($from == $to) { return $array; }
$c = count($array);
if (($c > $from) and ($c > $to)) {
if ($from < $to) {
$f = $array[$from];
for ($i = $from; $i < $to; $i++) {
$array[$i] = $array[$i+1];
}
$array[$to] = $f;
} else {
$f = $array[$from];
for ($i = $from; $i > $to; $i--) {
$array[$i] = $array[$i-1];
}
$array[$to] = $f;
}
}
return $array;
}
?>
示例
<?php
$array = array('Cero','Uno','Dos','Tres','Cuatro','Cinco','Seis','Siete','Ocho','Nueve','Diez');
$array = array_move_elem($array, 3, 5); print_r($array);
$array = array_move_elem($array, 5, 3); print_r($array);
?>
返回
<?php
Array ( [0] => Cero [1] => Uno [2] => Dos [3] => Cuatro [4] => Cinco [5] => Tres [6] => Seis [7] => Siete [8] => Ocho [9] => Nueve [10] => Diez )
Array ( [0] => Cero [1] => Uno [2] => Dos [3] => Tres [4] => Cuatro [5] => Cinco [6] => Seis [7] => Siete [8] => Ocho [9] => Nueve [10] => Diez )
?>