2013-04-10 60 views
3

重新排列陣列例如我有以下代碼:PHP - 通過具體指標

$sample = array(apple, orange, banana, grape); 

我想重新安排這個數組,通過使$sample[2]$sample[0],同時保持整個陣列的順序相同。

輸出應該是:

Array ([0] => banana [1] => grape [2] => apple [3] => orange) 
+0

對不起,如此模糊,但如果這個數組的範圍從2水果到10水果的大小,我想從一個隨機索引重新排列這個數組。所以說數組有6個值,我想從第3個索引或第4個索引或隨機索引開始重新排列。 – user2267898 2013-04-10 21:13:55

+0

我編輯了我的答案以包含一個函數。 – 2013-04-10 21:15:28

回答

4

使用array_shift()多次,因爲你需要...

$sample = array('apple', 'orange', 'banana', 'grape'); 

$fruit = array_shift($sample); 
$sample[] = $fruit; 
// now $sample will be array('orange', 'banana', 'grape', 'apple'); 

所以說,你想一個函數:

function rearrange_array($array, $key) { 
    while ($key > 0) { 
     $temp = array_shift($array); 
     $array[] = $temp; 
     $key--; 
    } 
    return $array; 
} 

現在,使用rearrange_array($sample, 2)您可以重新排列樣本數組到您想要的輸出。

+0

這就是我正在尋找:)有沒有辦法將它多次轉移?或者只是把它放在一個for循環我猜 – user2267898 2013-04-10 21:16:21

+0

看功能! – 2013-04-10 21:16:37

+0

美麗!非常感謝! – user2267898 2013-04-10 21:17:36