Я новичок в 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, но я продолжаю получать ошибку преобразования массива в строку.
эхо ожидает строку во время передачи массива, следовательно, ошибка преобразования массива в строку. Похоже, что вы не проверяете, является ли переданный параметр массивом. Попробуй это:
<?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));
Что касается того, почему вы не можете просто увидеть эхо-массив этот
Массивы всегда преобразуются в строку «Массив»; из-за этого,
echo и print не могут сами по себе показать содержимое массива. к
Для просмотра одного элемента используйте конструкцию, например echo $ arr [‘foo’].
Ниже приведены советы по просмотру всего содержимого.
Также я добавил Тип-подсказка для массива, чтобы при передаче чего-то, что не является массивом, вы получили ошибку.