【问题标题】:Nested 'foreach' for multidimensional array多维数组的嵌套“foreach”
【发布时间】:2018-01-25 23:09:57
【问题描述】:
<?php
$p_23 = array("Name"=>"XYZ","Age"=>"12");
$a_23 = array("Class"=>"5","Sec"=>"A");
$r_23 = array("Personal"=>$p_23,"Academic"=>$a_23);

$p_24 = array("Name"=>"ABC","Age"=>"14");
$a_24 = array("Class"=>"6","Sec"=>"B");
$r_24 = array("Personal"=>$p_24,"Academic"=>$a_24);

$stud = array("23"=>$r_23,"24"=>$r_24);

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

使用 echo 会报错,
以前的问题已解决,现在扩展我的问题。 现在我希望这个多维数组使用 html 标签打印如下所示
#卷 23#
##学术##
-Class=>5
-sec=>B
个人
-名称=>YXZ
-年龄=>12
#卷 24#
##学术##
-Class=>6
-sec=>A
个人
-名称=>ABC
-年龄=>12

--带有HTML标签的嵌套foreach部分--

foreach ($stud as $key => $value) {
    echo "<h1>Roll $key</h1>";
    echo "<ol>";
    foreach ($r_23 as $key => $value) {
    echo "<h2>$key</h2>";
    echo "<ul>";
    foreach ($p_23 as $key => $value){
    echo "<li>$key => $value</li>";}
    echo "</ul>";}
    echo "</ol>";

但它对学术和个人密钥显示相同的值,我并不完全想要。感谢你!!

【问题讨论】:

  • 使用 var_dump($value);打印数组
  • $value 也将是一个数组。你不能echo一个数组
  • 所以如果我使用 foreach ($stud as $key => $value) {print_r $value;}foreach ($stud as $key => $value) {var_dump $value;} 会起作用吗?正确的?谢谢你的回复,这是我第一次问问题,:)
  • 小提示你需要嵌套一些 foreach 循环来获取真实数据。
  • @RiggsFolly 谢谢你,我想我明白你的意思了:)

标签: php html multidimensional-array foreach nested-loops


【解决方案1】:

$value 是一个数组,echo 只会打印字符串,您需要对您的 $value 进行 JSON 编码并回显它或使用 var_dump。如果您的预期输出比这更复杂,那么您需要扩展您的问题。

【讨论】:

  • 我已经扩展了关于我真正想要做什么的问题,请检查!
【解决方案2】:

嗯,它是一个多维数组,所以你需要更多foreach()

这是更新后的代码:

<?php
$p_23 = array("Name"=>"XYZ","Age"=>"12");
$a_23 = array("Class"=>"5","Sec"=>"A");
$r_23 = array("Personal"=>$p_23,"Academic"=>$a_23);
$p_24 = array("Name"=>"ABC","Age"=>"14");
$a_24 = array("Class"=>"6","Sec"=>"B");
$r_24 = array("Personal"=>$p_24,"Academic"=>$a_24);
$stud = array("23"=>$r_23,"24"=>$r_24);
foreach ($stud as $key => $value) {
    foreach($value as $k => $v){
        foreach($v as $kk => $vv) {
            echo $vv;
        }
    }
}
?>

这是你的多维数组:

Array
(
    [23] => Array
        (
            [Personal] => Array
                (
                    [Name] => XYZ
                    [Age] => 12
                )

            [Academic] => Array
                (
                    [Class] => 5
                    [Sec] => A
                )

        )

    [24] => Array
        (
            [Personal] => Array
                (
                    [Name] => ABC
                    [Age] => 14
                )

            [Academic] => Array
                (
                    [Class] => 6
                    [Sec] => B
                )

        )

)

【讨论】:

  • 现在我使用嵌套的 foreach 以无序列表的形式打印数组,但 smhow 完全错过了这一点。
猜你喜欢
  • 2016-06-15
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 2018-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多