2013-04-10 56 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