有没有办法在php中没有任何循环或递归的情况下打印数组?
答案 0 :(得分:7)
答案 1 :(得分:7)
您可以尝试print_r($array);或var_dump($array);来显示有关数组的键/值信息。这主要用于调试。
或者,如果要向用户显示数组,可以使用implode将元素与自定义“胶水”implode(' ',$array);粘在一起。
答案 2 :(得分:3)
print_r
是您要寻找的功能。
答案 3 :(得分:2)
取决于你想要的东西。
print_r()打印有关变量的人类可读信息,但var_dump()显示有关包含其类型和值的表达式的结构化信息。
答案 4 :(得分:0)
这取决于你想要的结果。您可以将多个功能用于不同目的。
以下是一些例子:
您可以使用print_r进行调试输出。
<?php
$a = array ('a' => 'Apfel', 'b' => 'Banane', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
...将产生
Array
(
[a] => Apfel
[b] => Banane
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
如果您需要某些特定的格式化结果/输出,可以使用array_walk
<?php
$fruits = array("d" => "Zitrone", "a" => "Orange", "b" => "Banane", "c" => "Apfel");
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2<br>\n";
}
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'Frucht');
array_walk($fruits, 'test_print');
?>
...将产生
d. Zitrone
a. Orange
b. Banane
c. Apfel
d. Frucht: Zitrone
a. Frucht: Orange
b. Frucht: Banane
c. Frucht: Apfel
更通用的方式可能是iterator_apply
<?php
function print_caps(Iterator $iterator) {
echo strtoupper($iterator->current()) . "\n";
return TRUE;
}
$it = new ArrayIterator(array("Apples", "Bananas", "Cherries"));
iterator_apply($it, "print_caps", array($it));
?>
...将产生
APPLES
BANANAS
CHERRIES
但最终......当然,它们都在内部循环遍历阵列。 还有许多其他功能(例如array_map)可能是您编码的正确选择...查看php的文档并搜索array functions。
答案 5 :(得分:-1)
function num($a,$b){
if($b<0)
{
return false;
}
else
{
echo $a * $b;
num($a,--$b);
}
}
$a=1;
$b=5;