使用 print_r 或 php 中的任何其他函数打印多个数组

Posted

技术标签:

【中文标题】使用 print_r 或 php 中的任何其他函数打印多个数组【英文标题】:Printing more than one array using print_r or any other function in php 【发布时间】:2012-05-13 13:56:09 【问题描述】:

我需要在我的代码中打印多个数组的内容。比如

函数 performOp($n, $inputArr, $workArr) printf("输入的函数,n的值为%d", $n); print_r($inputArr); print_r($workArr); $宽度=0;

现在,有没有什么办法可以写一个语句并打印两个数组,而不是写两次 print_r ? 另外,如果我想在显示 Array 之前打印“输入数组值是”,有没有办法使用 printf 或任何其他函数来做到这一点?

我试着写了

 printf("inputArray 的值是 %s", print_r($inputArr)
,但这不起作用。

非常感谢任何帮助。

谢谢

【问题讨论】:

【参考方案1】:

转储变量

您可以将多个数组传递给var_dump()

var_dump( $array, $array2, $array3 );

例如,以下内容:

$array = array("Foo", "bar");
$array2 = array("Fizz", "Buzz");

var_dump( $array, $array2 );

输出这个:

array(2)  [0]=> string(3) "Foo" [1]=> string(3) "bar" 
array(2)  [0]=> string(4) "Fizz" [1]=> string(4) "Buzz" 

请注意它如何使两个数组在输出中保持不同。

带有 n 参数的函数

你也可以使用一个函数,为传入的数组调用func_get_args()

function logArrays() 
  $arrays = func_get_args();
  for ( $i = 0; $i < func_num_args(); $i++ )
    printf( "Array #%d is %s", $i, print_r($arrays[$i], true) );


logArrays( $array, $array2 );

在这种情况下,会输出以下内容:

Array #0 is Array ( [0] => Foo  [1] => bar  )
Array #1 is Array ( [0] => Fizz [1] => Buzz )

使用json_encode() 而不是print_r 会输出更易读的格式:

Array #0 is ["Foo","bar"]
Array #1 is ["Fizz","Buzz"]

【讨论】:

这是一个不错的选择,但我不想打印那么多细节。我想打印一条日志语句,说明我的名为 ABC 的数组是 ,我的名为 XYZ 的数组是 这太棒了!我尝试使用 print_r 和 json_encode() 编写 logArrays() 函数,它们工作正常。非常感谢!【参考方案2】:

用户array_merge() 合并数组,然后您可以将它们打印在一起。

【讨论】:

以上是关于使用 print_r 或 php 中的任何其他函数打印多个数组的主要内容,如果未能解决你的问题,请参考以下文章

输出后未编写 PHP 会话(外部 ajax 调用上的 echo 或 print_r)

液体中的 Print_r 等效项

php中echo(),print(),print_r(),var_dump()间的区别

PHP echo()print()print_r()var_dump()var_export()的区别

PHP调试时print_r ,var_dump的区别

PHP-day4