打印数组没有任何循环或递归

时间:2011-08-31 16:00:44

标签: php arrays

有没有办法在php中没有任何循环或递归的情况下打印数组?

6 个答案:

答案 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;