7

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

   函数 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)
,但这行不通。

非常感谢任何帮助。

谢谢

4

2 回答 2

4

转储变量

您可以将多个数组传递到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"]
于 2012-05-04T02:10:26.553 回答
1

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

于 2012-05-04T02:10:17.523 回答