php - PHP问题:无法通过关联数组打印行号白色循环
问题描述
我在 PHP 的帮助下做一个基本的 XML 解析操作simplexml_load_file
。
我遍历“CD 目录”并在 HTML 表格中打印出歌曲名称、艺术家等。对于我来说,鉴于 XML 文件中信息的结构,我无法打印行号。
这是代码:
<?php
$catalog = simplexml_load_file('https://www.w3schools.com/xml/cd_catalog.xml');
$cds = $catalog->CD;
?>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>#</th>
<th class="text-left">Song</th>
<th class="text-left">Artist</th>
<th class="text-left">Year</th>
<th class="text-left">Price</th>
</tr>
</thead>
<tbody>
<?php foreach ($cds as $k=>$cd) { ?>
<tr>
<td><?php echo $k; ?></td>
<td><?php echo $cd->TITLE; ?></td>
<td><?php echo $cd->ARTIST; ?></td>
<td><?php echo $cd->YEAR; ?></td>
<td><?php echo $cd->PRICE; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
第一列打印“CD”而不是行号。
我应该改变什么来打印行号?
解决方案
嗨,这是一个简单的解决方案,只需将您的 xml 对象作为字符串转换为一个新数组并循环它:
<?php
$catalog = simplexml_load_file('https://www.w3schools.com/xml/cd_catalog.xml');
$cds = $catalog->CD;
$customCatalog = array();
foreach ($cds as $value) {
$temp = array(
'TITLE' =>$value->TITLE->__toString() ,
'ARTIST'=> $value->ARTIST->__toString(),
'COUNTRY'=>$value->COUNTRY->__toString(),
'COMPANY'=>$value->COMPANY->__toString(),
'PRICE'=>$value->PRICE->__toString(),
'YEAR'=>$value->YEAR->__toString()
);
$customCatalog [] = $temp;
}
//print_r($customCatalog);
foreach ($customCatalog as $key => $value) {
if (isset($value)) {
echo $key;
echo $value["TITLE"];
echo $value["ARTIST"];
echo $value["COUNTRY"];
echo $value["COMPANY"];
echo $value["PRICE"];
echo $value["YEAR"];
}
}
?>
希望能帮助到你
推荐阅读
- deep-learning - 使用 CNN 的多输入图像分类
- nfc - 是否可以将 nfc ntag216 序列号添加到 url 注册表?
- python - tkinter Python 中不可见的按钮和表格
- php - 如何根据post id将sql中的变量获取到php?
- angular - 如何在弹性框外显示悬停或工具提示
- node.js - 如何将 SSL 用于 express.js/node.js REST api?
- css - 如何更改下拉菜单的不透明度?
- sql - 我无法在 postgresql 数据库中上传 .csv 文件,因为我不知道如何将日期结构放入 sql 查询中
- azure - 如何为为 DNS Recordset 创建的 Azure DNS 记录集添加 TAGS
- google-cloud-platform - 应如何配置主节点和工作节点以实现可扩展性和高可用性