Foreach迭代位置

时间:2014-10-31 17:10:34

标签: php loops foreach iteration

PHP中是否有办法将某些迭代移动到循环中的某个位置?

例如我有一个数组:

1, 2, 3, 4, 5, 6, 7, 8, 9

我们有一个1到9的数组,但我想在迭代结束时放置5,所以结果如下:

1
2
3
4
6
7
8
9
5

2 个答案:

答案 0 :(得分:2)

目前还不清楚你在问什么。无论如何,您可以使用unset[] operator

获取所需的输出
$element = $array[4];
unset($array[4]);
$array[] = $element;

直播:http://codepad.org/cWZHjJwy

如果您只需要搜索5,那么只需使用array_search()获取密钥:

$key = array_search(5,$array);
unset($array[$key]);
$array[] = 5;

答案 1 :(得分:1)

下面的代码将找到数字5的位置,将其删除并将其添加到数组的末尾。最后,我们迭代值。

$numbers = range(1, 9);

// find the position of value 5
$position = array_search(5, $numbers);

// save the value and remove from array
$value = $numbers[$position];
unset($numbers[$position]);

// add it back at the end
$numbers[] = $value;

// print the values
foreach ($numbers as $number) {
    echo $number . ' ';
}

结果

1 2 3 4 6 7 8 9 5