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