<?php
$myString = "14f05000034e69";
$myStringArray = str_split($myString);
$i=0;
foreach($myStringArray as $row){
if(array_key_exists($i,$myStringArray)) {
$newArray[$i] = $myStringArray[$i + 1];
$newArray[$i + 1] = $myStringArray[$i];
$i = $i + 2;
}
}
echo '<pre>';
print_r($newArray);
Я нашел обходной путь немного "грязным" способом, но мне удалось сделать то, что вы просили.
По сути, я разделяю строку, как вы, но я играю с новыми позициями массива и вставляю в свой новый массив те позиции, которые мне нужны, поэтому я использовал для этого счетчик.
Вывод:
Array
(
[0] => 4
[1] => 1
[2] => 0
[3] => f
[4] => 0
[5] => 5
[6] => 0
[7] => 0
[8] => 3
[9] => 0
[10] => e
[11] => 4
[12] => 9
[13] => 6
)
В основном я думал, что мне нужно зациклить массив на два, но каждый раз, когда я зацикливаюсь, мне нужно обрабатывать 2 позиции массива, а затем следующие две.
Так что это привело меня к обработке $new_array
таким образом, что я одновременно нажимаю данные в текущей позиции и в следующей позиции, поэтому счетчик $i+1
используется для обработки позиции массива.
Если бы я не использовал его там и использовал простой $newArray[]
, он поместил бы данные в мою текущую позицию и переписал бы их снова на втором шаге, а также я не смог бы переместить указатель массива в позиции 1,3,5, 6 и т. Д. И т. Д., Поэтому я «заставляю» его использовать свой счетчик $i
, поэтому я продолжаю указывать каждую позицию после.
Мой счетчик $i
устанавливается в конце каждого цикла для перемещения с шагом 2.