Foreach循环的迭代位置

4

在PHP中,是否有一种方法可以将某个迭代移动到循环中的特定位置?

例如,我有一个数组:

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

我们有一个1到9的数组,但我想让5放在迭代的末尾,这样结果将如下所示:

1
2
3
4
6
7
8
9
5

你能澄清一下吗?
  1. 这个数组是否总是包含9个值?
  2. 你是否总是将第5个值移动到末尾? 有很多选项,但这取决于您的实际需求是什么...
- naththedeveloper
将其添加到单独的数组中,然后将其添加到数组的末尾for($i = 1; $i < 10; $i++) { if($i == 5) { $arr2[] = $i; } else { $arr1[] = $i; } - James Lalor
数组是可变的,但数组中始终有数字5。 - John Guan
1
也许这个问题会有帮助:https://dev59.com/wHE95IYBdhLWcg3wUcRn - naththedeveloper
2个回答

2

不清楚您的问题是什么。无论如何,您可以使用unset[]运算符获得所需的输出。

$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;

非常好,我不知道你可以使用unset。这正是我所需要的。谢谢! - John Guan

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接