我有一个数组,我想在点击键时显示一个特定的顺序。当我点击' 5'时,结果将是' 5,6,4'。当我点击' 6'时,我会得到' 6,4,5'
Array
(
[0] => 4
[1] => 5
[2] => 6
)
提前致谢。
答案 0 :(得分:1)
获取所有值,直到单击另一个数组的值为 - $frontArray
并将其合并到主数组。
//get the clicked value
$clickedValue = your clicked value;
//find the key
$key = array_search($clickedValue, $myArray);
$frontArray = array();
if ($key !== FALSE) {
$keyReached = FALSE;
foreach ($myArray as $k => $v) {
if ($key == $k) {
$keyReached = TRUE;
}
if (!$keyReached) {
$frontArray[] = $v;
unset($myArray[$k]);
}
}
$myArray = array_merge($myArray, $frontArray);
//re-index the array
$myArray = array_values($myArray);
}
print_r($myArray); // this gets modified as per the clicked value
我已经使用您的示例对此进行了测试,但效果很好。
答案 1 :(得分:1)
使用array_splice将数组拆分为两个 - 在
之前和之后$ar = [4,5,6];
$v = 5;
if (false !== ($i = array_search($v, $ar)) {
$b = array_splice($ar, $i+1);
$ar = array_merge($b, $ar);
}
print($ar);