【发布时间】:2020-05-19 15:01:45
【问题描述】:
我有以下代码:
foreach ($params as $param)
{
foreach ($exclude_by_attribute as $exc)
{
if ($param['name']==$exc)
{
unset($param['name']);
unset ($param);
}
}
}
但它只取消设置最后一个元素。 if 语句中的元素取自另一个数组。如何删除所有元素?另外我会放一些示例 xml 数据:
<offer id="lyustra_sl113_303_03" type="vendor.model" available="true">
<picture>http://vokruglamp.ru/export/img/422/27059a11c58ade9b03bde05c2ca7c285.jpeg</picture>
<name>someName</name>
<vendor>ST Luce</vendor>
<url>http://somesite.com/catalog/product/lyustra_sl113_303_03/</url>
<currencyId>RUB</currencyId>
<categoryId>188</categoryId>
<image>http://somesite.com/export/img/422/27059a11c58ade9b03bde05c2ca7c285.jpeg</image>
<param name="code">1111</param>
<param name="brand">ST Luce</param>
<param name="someparam">value</param>
<param name="another">value</param>
我想删除其中的一些段落。基于 exclude_by_attribute 数组。
【问题讨论】:
-
不确定
unset ($param);是否应该在里面。 -
奈杰尔是正确的答案
-
是的。对不起。 params 数组来自 simpleXml 对象。对我来说,它就像 $param 一样保持 $param['name'] 的值。
-
如果你想删除基于某个属性的元素,你可以试试
unset ($param[0]); -
谢谢。但这样我会收到节点不再存在的警告。