dongmiao260399 2018-08-24 20:23
浏览 95
已采纳

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

I'm trying to create an anchor link by extracting specific array values based upon based upon the key. I've tried using a foreach loop inside of a for loop, however that doesn't seem to work.

Based upon the below multidimensional array how can I loop through each subarray to create individual anchor links, such as:

Example:

    /* 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>
  • 写回答

1条回答 默认 最新

  • dsuxcxqep31023992 2018-08-24 20:35
    关注

    Let's assume the array you posted is the content of a variable called $users. You can walk through it by doing

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

    This way, you can go through every node without worrying about the indexes.

    You may output the link on each foreach iteration in several ways. A complete example (which allows to use HTML without escaping every special character) could be:

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

    While it looks complex, with a lot of PHP opening and closing tags, it makes it easier on the markup with almost no performance penalty

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作