函数在数组php中的值的逆序

时间:2015-04-09 16:46:47

标签: php function reverse

我是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但我不断得到一个数组到字符串转换错误。

2 个答案:

答案 0 :(得分:0)

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

至于为何你不能只回显数组,请参阅this

  

数组总是转换为字符串“Array”;因为这,   echo和print不能自己显示数组的内容。至   查看单个元素,使用echo $ arr ['foo']等构造。   有关查看整个内容的提示,请参阅下文。

此外,我为数组添加了type-hints,这样当您传递的内容不是数组时,就会出错。

答案 1 :(得分:0)

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