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


Printing more than one array using print_r or any other function in php

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

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

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

我尝试编写

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

任何帮助真的非常感谢。

谢谢

转储变量

您可以将多个数组传递到 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"]

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

如果您更喜欢使用较少的函数并且具有print_r()的优势和简单性,请将这些输入值组合到print_r()内的新数组中,例如,如果我的代码(用于调试),我使用此功能打印原始未格式化输出,这是我达到的最简单的方法。

function  pre( $txt ) {
  print_r( [ '<xmp> ' , $txt ,' </xmp> ' ] );
   }