PHP多维数组基于键提取特定值

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (151)

我正在尝试通过基于密钥提取特定的数组值来创建锚链接。我尝试在for循环中使用foreach循环,但这似乎不起作用。

基于下面的多维数组,我如何遍历每个子数组以创建单独的锚链接,例如:

例:

    /* Array Example */

    array(3) {
          [0]=>
              array(2) {
                ["@attributes"]=>
                array(1) { 
                    ["id"] => string(1) "2"
                }
                ["name"]=> string(10) "Mark"
              }
          [1]=>
              array(2) {
                ["@attributes"]=>
                array(1) {
                  ["id"]=> string(1) "4"
                }
                ["name"]=> string(8) "John" 
              }
          [2]=>
              array(2) {
                ["@attributes"]=>
                array(1) {
                  ["id"]=> string(1) "5"
                }
                ["name"]=> string(10) "Suzy"
              }

    /* Desired Output */

    <a href="example.com?id=2&name=mark"> Mark </a>
    <a href="example.com?id=4&name=john"> John </a>
    <a href="example.com?id=5&name=mark"> Suzy </a>
提问于
用户回答回答于

假设您发布的数组是名为$ users的变量的内容。你可以通过这样做来完成它

foreach ($users as $usr)
{
  $usr['@attributes']['id'];
  $usr['@attributes']['name'];
}

这样,您可以遍历每个节点而无需担心索引。

您可以通过多种方式输出每个foreach迭代的链接。一个完整的示例(允许使用HTML而不转义每个特殊字符)可以是:

<?php
foreach ($users as $usr)
{ ?>
  <a href="example.com?id=<?php echo $usr['@attributes']['id']; ?>&name=<?php echo $usr['@attributes']['name']; ?>"><?php echo $usr['@attributes']['name']; ?></a>

<?php } ?>

虽然它看起来很复杂,但有许多PHP开启和关闭标签,它使标记更容易,几乎没有性能损失

扫码关注云+社区

领取腾讯云代金券