При редактировании строки изменить ее положение?

Рейтинг: 0Ответов: 1Опубликовано: 27.03.2023

Всем привет, есть текстовый файлик с строками такого вида:

1|Владимир|2000||1|
2|Олег|2000||1|
3|Виталий|2000||1|
4|Евгений|2000||1|
5|Станислав|2000||1|

Строки читаются с верху в низ. Вывод через цикл for.

Как при редактировании зная позицию строки можно переместить ее строго после первых двух? Тобишь есть строка Станислав ее ид 5 и позиция 4 (в массиве же от 0) и как эту позицию перенести на 3-ю?

Ответы

▲ 1

Например вот так:

$element = $a[5];
unset($a[5]);
$result = array_merge(array_slice($a, 0, 2), [$element], array_slice($a, 2));

Здесь $a - это ваш исходный массив, по которому вы, как я понял, проходитесь циклом. Функция array_slice() делит массив на части: в первой оказываются три начальных элемента, во второй - все остальные. Функция array_merge() потом соединяет их обратно, вставляя между ними то, что вы захотите.