繁体   English   中英

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

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

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

   function performOp($n, $inputArr, $workArr)
    {
        printf("Entered function, value of n is %d", $n);
    print_r($inputArr);
    print_r($workArr);
        $width =0;
    }

现在,不是写两次 print_r,有什么方法可以写一个语句并打印两个 arrays? 另外,如果我想在显示 Array{} 之前打印“Input array value is”,有没有办法使用 printf 或任何其他 function 来实现?

我试着写

    printf("Value of inputArray is %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()组合数组,然后您可以将它们一起打印。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM