Позиция итерации Foreach

Есть ли способ в PHP, чтобы переместить определенную итерацию в определенную позицию в цикле?

Например, у меня есть массив:

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

У нас есть массив от 1 до 9, но я хочу, чтобы 5 был помещен в конце итерации, чтобы результат выглядел так:

1
2
3
4
6
7
8
9
5

4

Решение

Неясно, что вы спрашиваете. В любом случае вы можете получить требуемый результат, используя 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;
2

Другие решения

Этот код ниже найдет позицию числа 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

1

По вопросам рекламы [email protected]