【问题标题】:How to print array element with keys & values in PHP?如何在 PHP 中打印带有键和值的数组元素?
【发布时间】:2019-04-07 15:37:48
【问题描述】:

我正在学习 php 中的数组和循环。但无法打印带有键和值的数组。我该怎么做?

<?php
$marks = array (
    "Alice" => array (
        "physics" => "60",
        "math" => "65"
    ),
    "Bob" => array (
        "physics" => "40",
        "math" => "45"
    )
);

foreach ( $marks as $key => $value) {
    foreach ( $key as $key2 => $value2 ) {
        echo $key . " : " . $key2 . " - " . $value2 . "<br>";
    };
};
?>

【问题讨论】:

  • 第二个 forEach 应该像 foreach ( $value as $key2 =&gt; $value2 ) {

标签: php arrays loops output


【解决方案1】:

在嵌套的foreach 中,您必须遍历保存数组的$value

foreach ( $marks as $key => $value) {
   foreach ( $value as $key2 => $value2 ) {
   // -------^^^^^^-------
      echo $key . " : " . $key2 . " - " . $value2 . "<br>";
   }
};

【讨论】:

  • 工作正常,我想要的。太感谢了。 :)
  • @NahidHasan :很高兴它有帮助
  • @NahidHasan - 欢迎来到 Stackoverflow。如果这个答案解决了你的问题,请mark it as accepted
【解决方案2】:

使用这个

foreach ( $marks as $key => $value) {
     foreach ( $value as $key2 => $value2 ) {
        echo $key . " : " . $key2 . " - " . $value2 . "<br>";
          }
       }

【讨论】:

    【解决方案3】:

    这样修复它并消除混乱可能更具可读性:

         $marks = array(
            'Alice' => array(
                'physics' => 60,
                'math' => 65,
            ),
            'Bob' => array(
                'physics' => 40,
                'math' => 45,
            ),
        );
    
        // Loop students
        foreach($marks as $name => $grades){
    
            // Loop their grades
            foreach ($grades as $subject => $score){
                echo $name . ' : ' . $subject . ' - ' . $score . '<br>';
            }
        }
    

    请注意,数字不带引号。这将允许您将它们用作数字来进行进一步的计算。

    【讨论】:

    • 这些变量名确实让代码更具可读性。谢谢你:)
    • 不客气。在尝试制定解决方案时,命名和注释代码/脚本很有帮助。
    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 2021-04-07
    相关资源
    最近更新 更多