【问题标题】:Assigning specific element of multidimensional array in url in php在php中的url中分配多维数组的特定元素
【发布时间】:2018-04-18 05:44:33
【问题描述】:

我的目标是从多维数组中获取特定的元素/值,并在循环中的 URL 中分配它们。我已经尝试过并且能够获取数组中的元素,但这会显示所有元素。我只想获取具体的值,例如 nidfield_x 值。

这是我的链接结构:http://localhost:8080/$nid/$field_x

预期结果:

http://localhost:8080/123/one
http://localhost:8080/789/three

这是我的示例var_dump 结果

array(1) {
  [0]=>
  array(38) {
    ["nid"]=>
    array(1) {
      [0]=>
      array(1) {
        ["value"]=>
        int(123)
      }
    }
    ["vid"]=>
    array(1) {
      [0]=>
      array(1) {
        ["value"]=>
        int(456)
      }
    }
    ["field_x"]=>
    array(1) {
      [0]=>
      array(4) {
        ["target_id"]=>
        string(6) "One"
      }
    }
    ["field_y"]=>
    array(1) {
      [0]=>
      array(4) {
        ["target_id"]=>
        string(2) "Two"
      }
    }
  }
  [1]=>
  array(38) {
    ["nid"]=>
    array(1) {
      [0]=>
      array(1) {
        ["value"]=>
        int(789)
      }
    }
    ["vid"]=>
    array(1) {
      [0]=>
      array(1) {
        ["value"]=>
        int(321)
      }
    }
    ["field_x"]=>
    array(1) {
      [0]=>
      array(4) {
        ["target_id"]=>
        string(6) "Three"
      }
    }
    ["field_y"]=>
    array(1) {
      [0]=>
      array(4) {
        ["target_id"]=>
        string(2) "Four"
      }
    }
  }
}

【问题讨论】:

  • 这有助于我获取多维数组中的元素。 stackoverflow.com/questions/49811491/…
  • 在上一个链接中你是说问题还是答案?
  • 您的回答似乎对我有用。我很欣赏你的快速反应。我只有一个担心,因为它给了我一个数组结果。我只想列出一个 url,而不是在数组中。顺便说一句,上一个链接已经在谈论答案了。
  • 好的,但是,如果答案对您有帮助,您为什么不评论或关闭上一个问题?谢谢。 “网址列表”是什么意思?答案第一部分echo网址,请问您需要哪种形式?
  • 我认为回答该主题的人修改了我的原始问题并包含了他的答案,我相信我上周接受了,他将其从答案列表中删除。

标签: php arrays multidimensional-array foreach


【解决方案1】:

您可以使用foreach() 并使用$values['nid'][0]['value']$values['field_x'][0]['target_id'] 获取数据:

foreach ($result as $values) {
    $nid = $values['nid'][0]['value'];
    $field_x = $values['field_x'][0]['target_id'];
    echo "http://localhost:8080/$nid/$field_x" ;
}

将输出:

http://localhost:8080/123/One
http://localhost:8080/789/Three

您可能想要做的不是回显,所以您可以创建一个新数组:

$urls = [];
foreach ($result as $values) {
    $nid = $values['nid'][0]['value'];
    $field_x = $values['field_x'][0]['target_id'];
    $urls[] = "http://localhost:8080/$nid/$field_x" ;
}
print_r($urls);

【讨论】:

  • 好的,非常感谢!这就是我正在寻找的。对不起,我一开始没有尝试echo,这是我想要实现的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 2019-03-14
  • 2016-08-11
  • 2014-10-30
  • 2015-07-05
  • 1970-01-01
相关资源
最近更新 更多