Функция для обратного порядка значений в массиве Stack Overflow

Я новичок в 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

Решение

эхо ожидает строку во время передачи массива, следовательно, ошибка преобразования массива в строку. Похоже, что вы не проверяете, является ли переданный параметр массивом. Попробуй это:

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

Что касается того, почему вы не можете просто увидеть эхо-массив этот

Массивы всегда преобразуются в строку «Массив»; из-за этого,
echo и print не могут сами по себе показать содержимое массива. к
Для просмотра одного элемента используйте конструкцию, например echo $ arr [‘foo’].
Ниже приведены советы по просмотру всего содержимого.

Также я добавил Тип-подсказка для массива, чтобы при передаче чего-то, что не является массивом, вы получили ошибку.

0

По вопросам рекламы [email protected]