Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Foreach迭代位置_Php_Loops_Foreach_Iteration - Fatal编程技术网

Php Foreach迭代位置

Php Foreach迭代位置,php,loops,foreach,iteration,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 不清楚你在问什么。无论如何,您都可以使用unset和[]运算符 $element = $array[4]; unset($array[4]); $array[] = $element; 现场: 如果只需要搜索5,则只需使用array\u search

在PHP中有没有一种方法可以将某个迭代移动到循环中的某个位置

例如,我有一个数组:

1, 2, 3, 4, 5, 6, 7, 8, 9
我们有一个1到9的数组,但我希望在迭代结束时放置5,因此结果如下所示:

1
2
3
4
6
7
8
9
5

不清楚你在问什么。无论如何,您都可以使用
unset
[]运算符

$element = $array[4];
unset($array[4]);
$array[] = $element;
现场:

如果只需要搜索5,则只需使用
array\u search()
获取密钥即可:


下面的代码将找到数字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 . ' ';
}
结果
你能澄清一下吗。数组是否总是包含9个值?2.是否总是将第5个值移动到末尾?有很多选项,但这取决于您的实际需求……将其添加到一个单独的数组中,然后将其添加到($i=1;$i<10;$i++)的数组末尾。{if($i==5){$arr2[]=$i;}else{$arr1[]=$i;}etc数组是可变的,但数组中总是有数字5。也许这个问题会有帮助:很好,我不知道你可以使用unset。这正是我需要的。谢谢!
$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 . ' ';
}