配列があり、キーをクリックすると特定の順序を表示したい。 「5」をクリックすると、結果は「5,6,4」になります。 「6」をクリックすると、「6,4,5」が得られます。次のキーから配列値を取得
Array
(
[0] => 4
[1] => 5
[2] => 6
)
ありがとうございます。
配列があり、キーをクリックすると特定の順序を表示したい。 「5」をクリックすると、結果は「5,6,4」になります。 「6」をクリックすると、「6,4,5」が得られます。次のキーから配列値を取得
Array
(
[0] => 4
[1] => 5
[2] => 6
)
ありがとうございます。
クリックした値が別の配列になるまですべての値を取得して、たとえば$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
私はこの例を使用してテストしましたが、正常に動作しています。 2に配列を分割する
ありがとうございましたjitendrapurohit私の答えを与えます。しかし、私は5をクリックして '5,4,6'を得るが、私は結果 '5,6,4'が必要です。 –
@RaxShah私は答えを更新しました。今すぐ動作します。 – jitendrapurohit
使用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);
前と後のこの配列はソートされています? –