use*_*low 6 php arrays printf var-dump
我需要在我的代码中打印多个数组的内容.例如
function performOp($n, $inputArr, $workArr)
{
printf("Entered function, value of n is %d", $n);
print_r($inputArr);
print_r($workArr);
$width =0;
}
现在,有没有什么方法可以编写单个语句并打印两个数组,而不是写两次print_r?另外,如果我想在显示数组{}之前打印"输入数组值是",有没有办法使用printf或任何其他功能?
我试着写作
printf("Value of inputArray is %s ", print_r($inputArr),但这不起作用.
任何帮助都非常感谢.
谢谢
您可以将多个数组传递到var_dump().
var_dump( $array, $array2, $array3 );
Run Code Online (Sandbox Code Playgroud)
例如,以下内容:
$array = array("Foo", "bar");
$array2 = array("Fizz", "Buzz");
var_dump( $array, $array2 );
Run Code Online (Sandbox Code Playgroud)
输出这个:
array(2) { [0]=> string(3) "Foo" [1]=> string(3) "bar" }
array(2) { [0]=> string(4) "Fizz" [1]=> string(4) "Buzz" }
Run Code Online (Sandbox Code Playgroud)
请注意它如何使两个数组在输出中保持不同。
您还可以使用一个函数,调用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 );
Run Code Online (Sandbox Code Playgroud)
在这种情况下,将输出以下内容:
Array #0 is Array ( [0] => Foo [1] => bar )
Array #1 is Array ( [0] => Fizz [1] => Buzz )
Run Code Online (Sandbox Code Playgroud)
使用json_encode()代替print_r会输出稍微更易读的格式:
Array #0 is ["Foo","bar"]
Array #1 is ["Fizz","Buzz"]
Run Code Online (Sandbox Code Playgroud)