2016-09-02 13 views
-1

配列があり、キーをクリックすると特定の順序を表示したい。 「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 

私はこの例を使用してテストしましたが、正常に動作しています。 2に配列を分割する

+0

ありがとうございましたjitendrapurohit私の答えを与えます。しかし、私は5をクリックして '5,4,6'を得るが、私は結果 '5,6,4'が必要です。 –

+0

@RaxShah私は答えを更新しました。今すぐ動作します。 – jitendrapurohit

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); 
関連する問題