我试图通过基于键提取特定的数组值来创建锚链接。我尝试过在 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['name'];
}
这样,您就可以遍历每个节点,而不必担心索引。
您可以通过多种方式输出每次 foreach 迭代的链接。一个完整的示例(允许使用 HTML 而无需转义每个特殊字符)可以是:
<?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 } ?>
虽然看起来很复杂,但有很多 PHP 开始和结束标签,它使标记变得更容易,几乎没有性能损失
您可以使用任一方式:($array 是您的数组)
$names = array_column($array, 'name');
$ids = array_map(function($ele){return $ele['@attributes']['id'];}, $array);