格式化并显示数组php

时间:2019-04-01 12:50:30

标签: php

我尝试将数组显示为可读格式,但显示时遇到一些问题。

我尝试过

foreach($results as $key => $value) {
    echo $key;
}

这是我的国家名称,我也尝试过使用另一个foreach,但无法根据需要返回结果。

数组:

Array
(
    [Russia] => Array
        (
            [ru] => Array
                (
                    [0] => aaa
                    [1] => bbb
                    [2] => bbbfff
                )

        )

    [Brazil] => Array
        (
            [br] => Array
                (
                    [0] => aaa
                    [1] => bbb
                    [2] => bbbfff
                )

        )

    [Egypt] => Array
        (
            [eg] => Array
                (
                    [0] => ddd
                )

        )
)

出门应该是这样

Russia
aaa
bbb
bbbfff

Brazil
aaa
bbb
bbbfff

Egypt
ddd

3 个答案:

答案 0 :(得分:1)

您需要使用foreach循环。

遍历数组并获取密钥,即国家/地区名称。

再次使用current()函数和implode()获取子数组。

current()函数返回当前元素,在本例中为第一个元素。

代码:

$arr['Russia']['ru'] = ['aaa', 'bbb', 'bbbfff'];
$arr['Brazil']['br'] = ['aaa', 'bbb', 'bbbfff'];
$arr['Egypt']['eg'] = ['ddd',];

if (! empty($arr)) {
 foreach ($arr as $code => $elem) {
  echo $code;
  echo "<br/>" . implode("<br/>", current($elem));
  echo "<br/><br/>";
 }
}

输出:

Russia
aaa
bbb
bbbfff

Brazil
aaa
bbb
bbbfff

Egypt
ddd

Working example:

答案 1 :(得分:0)

尝试以下操作:

foreach($results as $country => $country_array) {
    echo $country;
    foreach($country_array as $key => $value) {
        echo $value;
        echo "<br>";
    }
    echo "<br>";
}

您可以将<br>标签更改为环境中的相应换行标签,例如控制台中的\n

答案 2 :(得分:0)

您说过放置嵌套的foreach无效,但是我不明白为什么不这样做?

尝试以下代码:

foreach($results as $country => $shorts) {
    //Echo the country name
    echo $country . "<br />";

    foreach( $shorts as $short=>$values ){
        //Print all the values for that country
        foreach( $values as $key=>$value ){
            echo $value . "<br />";
        }
    }
}