我有一个数组,其中包含键和值,如下所示:
Array
(
[username] => someUser
[email] => my@email.com
[points] => -1118
[country] => 213
[played] => 1121
[win] => 556
[paid] => 1
)
但是,当使用'pre'来创建一个print_r来添加这样的数字时,它是否可能?
Array
(
[0][username] => someUser
[1][email] => my@email.com
[2][points] => -1118
[3][country] => 213
[4][played] => 1121
[5][win] => 556
[6][paid] => 1
)
这仅适用于print_r函数,不应用于其他任何内容!
希望得到帮助并提前感谢; - )
答案 0 :(得分:2)
不,这是不可能的。 This是print_r的作用。您必须自己创建自定义函数才能执行此操作。
答案 1 :(得分:1)
仍在使用print_r
:)
$a = ['username' => 'someUser', 'email' => 'my@email.com'];
echo preg_replace_callback('/\[(.+?)\]\s\=/', function($v) use (&$_) { return '[' . (++$_ - 1) . "]$v[0]"; }, print_r($a, 1));
答案 2 :(得分:0)
单独使用print_r()
无法执行此操作,但您可以获取print_r($array, true)
的输出,并尝试处理它以获得所需内容。但这违背了print_r()
的目的,因为编写遍历源数组的函数的自己版本会更容易
答案 3 :(得分:0)
正如veelen指出的那样,print_r是一种以人类可读的格式将数组内容转储到屏幕的工具。 print_r不允许更改格式。
你可以像这样敲门:
function print_r_indexed($array) {
$i = 0;
foreach ( $array as $key => $val ) {
echo "[$i][" . $key . "] => " . $val;
$i++;
}
}
然后调用上面的函数
$myArray = array ('a' => 1, 'b' => 2, 'c' => 3, 'email' => 'example@test.com' );
print_r_indexed($myArray);
但是,这是一种解决方法。可能不应该首先做这些事情。