【发布时间】:2012-09-22 15:12:18
【问题描述】:
我有一个包含 500 多个项目的长 xml 数据文件,它采用以下形式:
<?xml version="1.0" encoding="ISO-8859-1"?>
<CATALOG>
<ITEM>
<TITLE>ITEM name</TITLE>
<TYPE>"T1", "T2", "T3" </TYPE>
<DESCIPTION>DESCIPTIONiliate Page CPM</DESCIPTION>
<PRICE>PRICE</PRICE>
<ITEM>http://mysite.com/item-link</ITEM>
</ITEM>
</CATALOG>
我在php页面中使用以下代码从xml文件中导入数据:
<?php
$ITEMSS = new SimpleXMLElement('ITEMS.xml', null, true);
echo <<<EOF
<table width="100%" align="center" border="1" bordercolor="#0099ff" cellpadding="1" cellspacing="0">
<tr>
<th bgcolor="#66ccff"><span class="style4">ITEM Name</span></th>
<th bgcolor="#66ccff"><span class="style4">item TYPE </span></th>
<th bgcolor="#66ccff"><span class="style4">item DESCIPTION </span></th>
<th bgcolor="#66ccff"><span class="style4">item PRICE</span></th>
<th bgcolor="#66ccff"><span class="style4">link to item</span></th>
</tr>
EOF;
foreach($ITEMSS as $ITEMS) // loop through our DATAS
{
echo <<<EOF
<tr height="30" align=middle>
<td><a href="{$ITEMS->ITEM}" target="_blank"><span class="STYLE7">{$ITEMS->TITLE}</span></a></td>
<td><span class="STYLE8">{$ITEMS->TYPE}</span></td>
<td><span class="STYLE8">{$ITEMS->DESCIPTION}</span></td>
<td><span class="STYLE8">{$ITEMS->PRICE}</span></td>
<td><a href="{$ITEMS->ITEM}" target="_blank"><B><span class="STYLE7">cHECK IT OUT</span></B></a></td>
</tr>
EOF;
}
echo '</table>';
?>
在 TYPE 中我有不同的值,例如:
<TYPE>"T1", "T2", "T3" </TYPE>
<TYPE>"T1", "T4", "T6" </TYPE>
<TYPE>"T1", "T8", "T1" </TYPE>
每个项目可能有不同的 TYPE 值
如果值在 TYPE 数组中,我需要在循环中添加一个“if”语句以仅选择一些数据,例如:
foreach($ITEMSS as $ITEMS) // loop through our DATAS
{
$options = array($ITEMS->TYPE);
if (in_array("T1", $options))
{ echo <<<EOF
<tr height="30" align=middle>
<td><a href="{$ITEMS->ITEM}" target="_blank"><span class="STYLE7">{$ITEMS->TITLE}</span></a></td>
<td><span class="STYLE8">{$ITEMS->TYPE}</span></td>
<td><span class="STYLE8">{$ITEMS->DESCIPTION}</span></td>
<td><span class="STYLE8">{$ITEMS->PRICE}</span></td>
<td><a href="{$ITEMS->ITEM}" target="_blank"><B><span class="STYLE7">cHECK IT OUT</span></B></a></td>
</tr>
EOF;
}
}
但即使我要查找的值在数组中,它也不会显示任何内容!
那么在这种情况下如何在数组语句中使用 if 呢?
【问题讨论】:
-
有了
"value I want",你能举个例子说明你会在那里得到什么吗? -
那不是数组而是字符串,所以
in_array没有多大意义。最好先隔离问题,你的问题会更好,你会更快地解决它。 -
我想要的值可以是 T1 , T2 ...,例如,我想在 TYPE 中具有 T1 的页面数据和 TYPE 中具有 T3 的其他页面数据中显示
-
@hakra ,你是什么意思?那么如何使用 if 语句来检查一个值是否存在于给定的 TYPE 列表中?
-
请将
var_dump($ITEMS->TYPE);的输出添加到您的问题中。