簡體   English   中英

打印數組,無任何循環或遞歸

[英]Printing Array without any loop or recursion

有沒有一種方法可以在沒有任何循環或遞歸的情況下在php中打印數組?

您可以嘗試print_r($ array); var_dump($ array); 顯示有關數組的鍵/值信息。 這主要用於調試。

或者,如果要向用戶顯示數組,則可以使用implode將元素與自定義“ glue”, implode('',$ array);粘貼在一起

print_r是您要尋找的功能。

取決於您想要什么。

print_r()打印有關變量的人類可讀信息,但是var_dump()顯示有關表達式的結構化信息,包括其類型和值。

這取決於您想要的結果。 您可以將幾個功能用於不同的目的。

這里有些例子:

您可以將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文檔並搜索數組函數

function num($a,$b){

    if($b<0)
    {
        return false;

    }
    else
    {
        echo $a * $b;

        num($a,--$b);
    }
}

$a=1;
$b=5;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM