【问题标题】:How to use echo with PHP's array_reverse() Function [duplicate]如何在 PHP 的 array_reverse() 函数中使用 echo [重复]
【发布时间】:2019-06-01 14:03:56
【问题描述】:

我不是使用 print_r 的忠实拥护者,我更喜欢在可能的情况下一直使用 echo,那么如何将 echo 与 PHP 的 array_reverse() 函数一起使用

这就是文档大部分时间在线的样子,例如他们一直使用 print_r

<?php
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
print_r(array_reverse($a));
?>

我尝试在此示例中使用 echo,但它不适用于 echo。

<?php
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
echo array_reverse($a);
?>

那么我怎样才能让它与 echo 一起工作呢?

【问题讨论】:

  • 您希望看到什么结果? echo 只能打印 strings(或可以隐式转换为字符串的类型)。
  • 你不能,至少它不会产生你期望的结果。 echo 只能输出 scalar 值,但你有一个结构化值。因此,您需要在 echo 周围实现一个包装器,以递归方式将结构转换为标量值。
  • 3v4l.org/t1dSN - 你真的想从这些选项中选择var_dump
  • 不确定array_reverse()echo 的使用有何影响——更多的是与echo 和数组有关。

标签: php


【解决方案1】:

简短的回答,你不能。您可以使用implode 函数将字符串中的所有数组元素连接起来,然后将其回显。

<?php

$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");

$comma_separated = implode(", ", array_reverse($a));

echo $comma_separated;

?>

我用逗号分隔每个数组元素。

或者,为了更好地控制结果,您可以简单地使用 foreach 循环遍历数组,您可以在此处了解如何执行此操作:How to echo an array in PHP?

【讨论】:

  • 天哪,谢谢你 :) 这对我有用。
【解决方案2】:

您不能将数组传递给echo;您必须遍历它并回显键和/或值。

对于示例中的单级关联数组,可以这样完成:

<?php
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");

foreach( array_reverse( $a ) as $key => $value ) {
    echo "$key: $value\n";
}

输出:

c: Toyota
b: BMW
a: Volvo

您可以根据需要调整上述代码以格式化输出。

当然,如果数组包含其他(嵌套)数组或对象,它将不起作用。


但是,如果您需要 调试 目的,我建议您坚持使用 PHP 可用于该特定目的的本机函数:

print_r

var_export

var_dump

【讨论】:

  • 你也不需要中间赋值:foreach(array_reverse($a) as $k=&gt;$v)
  • @Progrock 是的,你是对的;谢谢
猜你喜欢
  • 1970-01-01
  • 2019-12-01
  • 2019-08-19
  • 2015-09-30
  • 1970-01-01
  • 2014-12-08
  • 2020-05-23
  • 2018-10-01
  • 2014-12-12
相关资源
最近更新 更多