如何在php中反转数组而不使用数组反转方法

wooyq4lh  于 2023-03-16  发布在  PHP
关注(0)|答案(6)|浏览(134)

我想知道如何不使用array_reverse方法来反转一个数组。我有一个名为reverse array的数组,这是我想要反转的数组。我的代码如下。有人能指出我做错了什么吗?因为我在其他地方找不到任何这样反转数组的例子。我的代码如下。

<?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);
}

?>
h7appiyu

h7appiyu1#

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

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

ugmeyewa2#

下面的代码是一个数组的反转,这里的目标是提供一个最优的解决方案。与上面的解决方案相比,我的解决方案只迭代了一半的长度,虽然它是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)

?>
v1l68za4

v1l68za43#

你的方法的问题是当你达到0时,它会再运行一次,index会得到-1的值。

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

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

t40tm48m4#

下面是我从here借用代码并对其进行更新的另一种方法,这样我就不必使用$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在适当位置反转,因此不需要创建新阵列。
以下代码改进了代码,因此不需要向reverseArray()传递多个参数;以及指示没有返回值:

/* Function to reverse  
$arr from start to end*/
function reverseArray(&$arr, $start=0): void 
{ 
    $end = count($arr)-1;
    while ($start < $end) 
    { 
        [$arr[$start],$arr[$end]] = [$arr[$end],$arr[$start]];

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

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

参见here
注意:此版本适用于PHP 7.2-7.4.2

dsekswqp

dsekswqp5#

在php中反转一个数组,而不使用数组反转方法中的任何函数

<?php
  $array = [11,22,32,42,52,62,71];
   $count = sizeof($array);
   for($i = $count -1;$i >=0;$i--){
     $data[] = $array[$i];
   }
   
   print_r($data);
  
?>
qxgroojn

qxgroojn6#

如何在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];
?>

相关问题