Доброго времени суток! Про array_reverse знаю, но хочу сделать без этой функции. Переворачиваю массив, по моим сообажениям массив должен быть такой: Array ( [0] => o [1] => l [2] => l [3] => e [4] => h ) , а на деле получается такой: Array ( [0] => 0 [1] => o [2] => l [3] => l [4] => e [5] => h ). Подскажите почему первый элемент массива = [0] => 0 , а не [0] => o. Заранее благодарен! Вот мой пример: PHP: $arr=array('h','e','l','l','o'); $reversed=array(0); for($i=count($arr)-1; $i>=0; $i--){ if ($i > count($arr)-1) { break; } $reversed[]=$arr[$i]; } print_r($reversed);
Он имеет ввиду, что количество перестановок в массиве равно половине его длины. Если длина нечетная, то половина целочисленного деления длины+1. Но, при этом это "+1" будет в самом центре, и будет тем элементом, позиция которого не изменится. Так что его можно тупо откинуть. То есть массив из 10-11 элементов можно перевернуть за 5 итераций, а не за 10-11
wtf ? PHP: $arr = ['h','e','l','l','o']; $new_arr = []; for($i=count($arr)-1; $i >= 0; $i--){ $new_arr[] = $arr[$i]; } var_dump($new_arr);