首页 > 解决方案 > 如何将子数组迭代为父数组的“行”,同时(按名称)在每个“行”中回显(键/值对)值

问题描述

我花了好几个小时寻找和尝试。根据 array() 和 list() 的文档,我的一种变体似乎可以工作,但到目前为止还没有成功。

我的目标是以下代码(或它的一些更正版本)......

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Demo of Issue</title>
</head>
<body>
<?php   

$Details_Standard_Ship = Array ( 
    Array ('Book_ID' => 'c7xhGSU', 'Author_Name' => 'John Doe', 'Language' => 'English', 'Title' => 'Some Title 1'),
    Array ('Book_ID' => 'rFxW8Bo', 'Author_Name' => 'Jane Doe', 'Language' => 'Spanish', 'Title' => 'Some Title 2')
);

foreach ($Details_Standard_Ship as $Details_ITEM) {

    list($_Book_ID, $_Author_Name, $_Language, $_Title) = current($Details_ITEM); 

    echo "<p>Book_ID = " . $_Book_ID . "</p>";
    echo "<p>Author_Name = " . $_Author_Name . "</p>";
    echo "<p>Language = " . $_Language . "</p>";
    echo "<p>Title = " . $_Title . "</p>";
}
?>
</body>
</html>

...将输出此结果:

迭代 1 of 2(第一个子数组) Book_ID: c7xhGSU, Author_Name: John Doe, Language: English, Title: Some Title 1

迭代 2 of 2(第二个子数组) Book_ID: rFxW8Bo, Author_Name: Jane Doe, Language: Spanish, Title: Some Title 2

注意:在遍历父数组的父级,我需要对每个子数组进行一次迭代,给出与子数组数量相匹配的主迭代总数。挑战在于仅在该子数组的一个“父级”迭代中获取所有子级的值。似乎我在进行外循环迭代时需要内循环迭代。我就是不知道怎么办!

以下是我尝试过的伪版本...

foreach $Details_Standard_Ship as $Details_ITEM {
  foreach $Details_ITEM as list($_Book_ID, $_Author_Name, $_Language, $_Title) {
  // echoing here...
  }
}

foreach ($Details_Standard_Ship as $Details_ITEM) {
  list($_Book_ID, $_Author_Name, $_Language, $_Title) = current($Details_ITEM); 
  // echoing here...
}

foreach ($Details_Standard_Ship as list( $_Book_ID, $_Author_Name, $_Language, $_Title)) {
  // echoing here...
}

..等等。

我当然会欢迎并感谢任何帮助。

标签: phparrayslistmultidimensional-array

解决方案


实现在问题上发布的输出

采用

foreach(array as $key => $value)
    //do something

整个代码

$Details_Standard_Ship = Array ( 
        Array ('Book_ID' => 'c7xhGSU', 'Author_Name' => 'John Doe', 'Language' => 'English', 'Title' => 'Some Title 1'),
        Array ('Book_ID' => 'rFxW8Bo', 'Author_Name' => 'Jane Doe', 'Language' => 'Spanish', 'Title' => 'Some Title 2')
 );

 foreach ($Details_Standard_Ship as $Details_ITEM) {
      foreach ($Details_ITEM as $key => $value) {
        echo "<p> $key = $value </p>";
      }
 }

从评论中了解问题后

用于$array['keyname']获取特定键的值

   $Details_Standard_Ship = Array ( 
            Array ('Book_ID' => 'c7xhGSU', 'Author_Name' => 'John Doe', 'Language' => 'English', 'Title' => 'Some Title 1'),
            Array ('Book_ID' => 'rFxW8Bo', 'Author_Name' => 'Jane Doe', 'Language' => 'Spanish', 'Title' => 'Some Title 2')
     );

     foreach ($Details_Standard_Ship as $Details_ITEM) {
        echo "<p>Book_ID = " .  $Details_ITEM['Book_ID'] . "</p>";
        echo "<p>Author_Name = " . $Details_ITEM['Author_Name']  . "</p>";
        echo "<p>Language = " . $Details_ITEM['Language']  . "</p>";
        echo "<p>Title = " . $Details_ITEM['Title']  . "</p>"; 
     }

推荐阅读