函数,用于数组php中值的反向顺序


Function for reverse order of values in an array php

我是PHP的新手,有人要求我编写一个函数,接受数组作为参数,然后按相反的顺序打印数组。以下是我目前所拥有的:

<?php
  function RevOrder ($arr1) {
    $arr1 == array();
    echo array_reverse($arr1);
  }
  RevOrder (array(1,4,2,5,19,11,28));
?>

它应该输出28、11、19、5、2、4、1,但我一直得到一个数组到字符串的转换错误。

echo在传递数组时需要一个字符串,因此会出现数组到字符串的转换错误。看起来您也没有正确检查传递的参数是否为数组。试试这个:

<?php
function RevOrder($arr1) {
   if (is_array($arr1)) {
        return array_reverse($arr1);
   }
   return false;
}
$reversedArray = RevOrder(array(1,4,2,5,19,11,28));
// Option 1
print_r($reversedArray);
// Option 2
echo(implode(', ', $reversedArray));
<?php
function RevOrder (array $arr1) {
    echo implode(", ", array_reverse($arr1));
}
RevOrder (array(1,4,2,5,19,11,28));

但请注意,这不是一个特别好的设计——你的功能应该做一件事。在这种情况下,您应该编写一个函数,根据自己的喜好打印一个数组,然后将其传递给反向数组。虽然在这种情况下,我想有一个助手函数可以按相反的顺序打印数组,但当你做一些更复杂的事情时,你应该考虑这一点。

编辑:

你可以这样做:

function printArray(array $arr){
    echo implode(", ", $arr);
}
printArray(array_reverse($arr));

至于为什么你不能只看到回波阵列这个

数组总是转换为字符串"Array";因此,echo和print本身不能显示数组的内容。到查看单个元素,使用echo$arr['fo']等构造。有关查看全部内容的提示,请参阅以下内容。

我还为数组添加了类型提示,这样当您传递不是数组的东西时,就会出现错误。