Как изменить массив в php БЕЗ использования метода обратного массива

Я хочу знать, как изменить массив без использования метода array_reverse. У меня есть массив с обратным массивом, который я хочу изменить. Мой код ниже. может кто-то указать, что я делаю неправильно, поскольку я не могу найти какой-либо пример обращения вспять массива таким образом в другом месте. мой код ниже.

<?php

//Task 21 reverse array

$reverseArray = array(1, 2, 3, 4);
$tmpArray = array();
$arraySize = sizeof($reverseArray);

for($i<arraySize; $i=0; $i--){
    echo $reverseArray($i);
}

?>

Ответ 1

<?php
  $array = array(1, 2, 3, 4);
  $size = sizeof($array);

  for($i=$size-1; $i>=0; $i--){
      echo $array[$i];
  }
?>

Ответ 2

Ниже приведен код для обращения к массиву. Цель здесь - предоставить оптимальное решение. По сравнению с утвержденным выше решением, мое решение повторяется только половину длины. хотя это O (N) раз. Это может сделать решение немного быстрее при работе с огромными массивами.

<?php
  $ar = [34, 54, 92, 453];
  $len=count($ar);
  for($i=0;$i<$len/2;$i++){

    $temp = $ar[$i];
    $ar[$i] = $ar[$len-$i-1];
    $ar[$len-$i-1] = $temp;
  }

  print_r($ar)

?>

Ответ 3

Проблема с вашим методом в том, что когда вы достигаете 0, он запускается еще раз, и index получает значение -1.

$reverseArray = array(1, 2, 3, 4);
$arraySize = sizeof($reverseArray);

for($i=$arraySize-1; $i>=0; $i--){
    echo $reverseArray[$i];
}

Ответ 4

Как перевернуть массив без использования каких-либо предопределенных функций в PHP.. У меня было решение этой проблемы... вот мое решение........

<?php
// normal array --------
$myarray = [1,2,3,4,5,6,7,8,9];
//----------------
    $arr = [];
    for($i=9; $i > -1; $i--){

        if(!$i==0){

            $arr[]= $i;
        }   
    }
    print_r($arr);



//the out put is [9,8,7,6,5,4,3,2,1];
?>

Ответ 5

Вот еще один способ, в котором я одолжить код из здесь и обновлять его так, что я устраняю необходимость использовать переменный $ Temp и вместо того, чтобы воспользоваться массивом деструктуризации, следующим образом:

<?php
/* Function to reverse  
$arr from start to end*/
function reverseArray(&$arr, $start,  
                       $end) 
{ 
    while ($start < $end) 
    { 
        [$arr[$start],$arr[$end]] = [$arr[$end],$arr[$start]];

        $start++; 
        $end--; 
    }  
}      

$a = [1,2,3,4];
reverseArray($a,0,count($a)-1);
print_r($a);

Смотрите живой код

Одним из преимуществ этого метода является то, что массив $ a перевернут на месте, поэтому нет необходимости создавать новый массив.