【问题标题】:Printing arrays with different names using for and foreach in PHP在 PHP 中使用 for 和 foreach 打印具有不同名称的数组
【发布时间】:2021-11-17 18:13:25
【问题描述】:

我是 PHP 新手,想知道是否有解决此问题的简单方法。

$class_1 = array("Name" => "Lule", "Surname" => "Mirela", "Email" => "Lule@gmail.com", "Birthday" => "30/04/2001");
$class_2 = array("Name" => "Aida", "Surname" => "Besim", "Email" => "Aida@gmail.com", "Birthday" => "16/11/2001");
$class_3 = array("Name" => "Flaka", "Surname" => "Agim", "Email" => "Flaka@gmail.com", "Birthday" => "23/09/2003");
for($i = 1; $i <= 3; $i++) {
    foreach ($class_1 as $key => $val) {
        echo $key. ": ";
        echo $val. "<br/>";
    }
}

从技术上讲,我认为只写$class_$i 是可能的,但这似乎不起作用。我不熟悉 PHP 语法。

【问题讨论】:

    标签: php arrays for-loop foreach associative-array


    【解决方案1】:

    您要查找的内容称为“variable variables”。 您必须构建一个包含数组名称的变量并将其与双美元符号一起使用:

    $class_1 = array("Name" => "Lule", "Surname" => "Mirela", "Email" => "Lule@gmail.com", "Birthday" => "30/04/2001");
    $class_2 = array("Name" => "Aida", "Surname" => "Besim", "Email" => "Aida@gmail.com", "Birthday" => "16/11/2001");
    $class_3 = array("Name" => "Flaka", "Surname" => "Agim", "Email" => "Flaka@gmail.com", "Birthday" => "23/09/2003");
    for($i = 1; $i <= 3; $i++) {
        $array = "class_$i";
        foreach ($$array as $key => $val) {
            echo $key. ": ";
            echo $val. "<br/>";
        }
    }
    

    或者更简洁:

    $class_1 = array("Name" => "Lule", "Surname" => "Mirela", "Email" => "Lule@gmail.com", "Birthday" => "30/04/2001");
    $class_2 = array("Name" => "Aida", "Surname" => "Besim", "Email" => "Aida@gmail.com", "Birthday" => "16/11/2001");
    $class_3 = array("Name" => "Flaka", "Surname" => "Agim", "Email" => "Flaka@gmail.com", "Birthday" => "23/09/2003");
    for($i = 1; $i <= 3; $i++) {
        foreach (${"class_$i"} as $key => $val) {
            echo $key. ": ";
            echo $val. "<br/>";
        }
    }
    

    但是在我看来,按照@Akshay Pose 的建议制作一个数组通常会更好。

    【讨论】:

      【解决方案2】:

      尝试使用多维数组。像这样的。

      
      $class[0] = array("Name" => "Lule", "Surname" => "Mirela", "Email" => "Lule@gmail.com", "Birthday" => "30/04/2001");
      $class[1] = array("Name" => "Aida", "Surname" => "Besim", "Email" => "Aida@gmail.com", "Birthday" => "16/11/2001");
      $class[2] = array("Name" => "Flaka", "Surname" => "Agim", "Email" => "Flaka@gmail.com", "Birthday" => "23/09/2003");
      for($i = 0; $i <= 2; $i++) {
          foreach ($class[$i] as $key => $val) {
              echo $key. ": ";
              echo $val. "<br/>";
          }
      }
      

      另外,将类作为变量名是一个糟糕的主意。

      【讨论】:

        猜你喜欢
        • 2015-05-10
        • 2020-09-08
        • 1970-01-01
        • 1970-01-01
        • 2021-10-28
        • 1970-01-01
        • 1970-01-01
        • 2015-08-18
        • 2018-08-10
        相关资源
        最近更新 更多