У меня есть массив [1, 2, 3, 4]
, а нужно получить [2, 1, 4, 3]
. Может в php есть готовое решение? А если нет, то можно пожалуйста пример такой функции.
Ещё вариант в коллекцию ответов:
$a_1 = [1, 2, 3, 4, 5, 6, 7];
$a_2 = [];
for ($j = count($a_1), $i = 0, $k = 0; $i < $j; $i++) {
$k = $i & 1 ? $k - 1 : $i + 1;
empty($a_1[$k]) ?: $a_2[] = $a_1[$k];
}
echo '<pre>'; print_r($a_2); echo '</pre>';
Результат:
Array
(
[0] => 2
[1] => 1
[2] => 4
[3] => 3
[4] => 6
[5] => 5
)
Собсно вот. Но здесь я предположил, что в массиве первый ключ 0, пропущенных ключей нет и количество элементов четное. Если количество элементов нечетное, то, во-первых, вылетит notice; во-вторых, предпоследний элемент станет null, а последний - ну тот который был последним в изначальном массиве.
$a = [5, 6, 7, 8, 9, 10 , 11, 12, 13, 14, 15, 16 /*, 17*/];
for($i = 0; $i < count($a) / 2; $i++) {
$b = $a[$i * 2];
$a[$i * 2] = $a[$i * 2 + 1];
$a[$i * 2 + 1] = $b;
}
var_dump($a);
JoomlaПодскажите пожалуйста, как создать позицию для модуля или материала
Пытаюсь разобраться с instagram APIМне нужен бот, который будет автоматически ставить всем моим подписчикам лайк
ЗдравствуйтеПрошу идеи, предложения или еще что-то по реализации данного вопроса
Помогите, пожалуйста, составить универсальное регулярное выражение для разделения строки на числа, сочетания букв идущих подряд и пробел