php - PHP 元素输出显示 array() 而不是字符串
问题描述
我目前正在从 sql 查询构建一个数组
$displayResult = $mysqlConn->query($getDisplays);
$displayNames = array();
foreach($displayResult as $subArray) {
if(!array_key_exists($subArray['location_name'], $displayNames)) {
$displayNames[$subArray['location_name']] = array();
}
$displayNames[$subArray['location_name']][] = $subArray['display_name'];
}
print_r($displayNames);
它打印如下:
Array
(
[Office 1] => Array
(
[0] => lobby
[1] => break room
)
[Office 2] => Array
(
[0] => lobby
[1] => break room
)
但是由于某种原因,当我循环并尝试将数组键作为标题和子项作为链接回显时,它只是转储了“数组”这个词
<?php foreach($displayNames as $key => $displayName):?>
<h2><?php echo $key; ?></h2>
<a><h4><?php echo $displayName; ?></h4></a>
<?php endforeach;?>
我尝试按索引转储,但它是空白的。我需要另一个嵌套的 foreach 来获取每个孩子吗?
解决方案
您有多维/嵌套数组,因此 $displayName 实际上也是数组,您尝试将其打印为字符串。只需使用它们的索引调用它的孩子。最简单的解决方案是:
<?php foreach($displayNames as $key => $displayName):?>
<h2><?php echo $key; ?></h2>
<a><h4><?php echo $displayName[0] . '-' . $displayName[1]; ?></h4></a>
<?php endforeach;?>
或者对于多个元素,您可以使用for
循环或foreach
<?php foreach($displayNames as $key => $displayName):?>
<h2><?php echo $key; ?></h2>
<?php foreach($displayName as $key2 => $displayNameRoom): ?>
<a><h4><?php echo $displayNameRoom; ?></h4></a>
<?php endforeach; ?>
<?php endforeach;?>
推荐阅读
- python - 减去日期时间对象时如何修复整数溢出错误(使用 Dask)
- android - Dagger 2.21+ 无法在 android 中生成 UnitTest 组件
- perl - Perlbrew 开关在 docker build 上失败
- android - React Native 中的推送通知
- java - 在设计下载文件的系统时如何确保身份验证?
- node.js - 有人可以解释一下路由器在nodejs中是如何工作的吗?
- excel - 用蓝色棱镜去除 exel 中的换行符,
- python - 如何在 QtextEdit 上超载粘贴
- bitbucket - 无法更改 Bitbucket 中的端口号
- google-maps - 是否可以在搜索功能、谷歌地图 API 中缩小到并只包含特定的词?