Forum Moderators: coopster
Array( [0] => sydney [1] => paris [2] => london [3] => madrid ) Array( [0] => paris [1] => sydney [2] => london [3] => madrid )
<pre>
<?php
$cities=array();
$cities[]="Sydney";
$cities[]="Paris";
$cities[]="London";
$cities[]="Madrid";
print_r($cities);
/*
$cities=swapByValues($cities,"Paris","Madrid");
print_r($cities);
$cities=swapByIndex($cities,0,1);
print_r($cities);
*/
$cities=moveUp($cities,"Paris");
$cities=moveDown($cities,"London");
print_r($cities);
function moveUp($values,$value)
{
$index1=array_search($value,$values);
if($index1==0)
{
return $values;
}
else
{
$index2=$index1-1;
$value1=$values[$index1];
$value2=$values[$index2];
$values[$index1]=$value2;
$values[$index2]=$value1;
return $values;
}
}
function moveDown($values,$value)
{
$index1=array_search($value,$values);
$lastIndex=count($values)-1;
if($index1==$lastIndex)
{
return $values;
}
else
{
$index2=$index1+1;
$value1=$values[$index1];
$value2=$values[$index2];
$values[$index1]=$value2;
$values[$index2]=$value1;
return $values;
}
}
function swapByValues($values,$value1,$value2)
{
$index1=array_search($value1,$values);
$index2=array_search($value2,$values);
$values[$index1]=$value2;
$values[$index2]=$value1;
return $values;
}
function swapByIndex($values,$index1,$index2)
{
$value1=$values[$index1];
$value2=$values[$index2];
$values[$index1]=$value2;
$values[$index2]=$value1;
return $values;
}
?>
</pre>
function exchange_array_elements($src_array, $index) {
if( empty($src_array) || !is_array($src_array) || count($src_array) < 2 ) return $src_array;
$j = count($src_array);
$index = max($index, 1);
$index = min($index, $j-1);
$replace = $src_array[$index];
array_splice($src_array, $index-1, 0, $replace);
array_splice($src_array, $index+1, 1);
return $src_array;
}
// test
$index = 2;
$src_array = array('sydney', 'paris', 'london', 'madrid');
$result_array = exchange_array_elements($src_array, $index);
print_r($result_array);
$position1 = $_GET['pos']; $position2 = $position1 - 1; $tmpa = $values[$position1]; $tmpb = $values[$position2]; $values[$position1] = $tmpb; $values[$position2] = $tmpa; $position2 = $position1 - 1 $position2 = $position1 + 1
The elements are in no particular order. the user chooses whichever order they want.