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 如何构建全国统一的物流管理平台?
  • ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
  • ¥20 和学习数据的传参方式,选择正确的传参方式有关
  • ¥15 这是网络安全里面的poem code
  • ¥15 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
  • ¥50 python写segy数据出错
  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥30 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路