我有以下代码:
<?php
$attr_data = array();
foreach ($content->search as $attributeSelected)
{
$attr_data[] = $attributeSelected['id'];
}
?>
这将数据保存为:
Array (
[0] => SimpleXMLElement Object ( [0] => 23914175_laptop )
[1] => SimpleXMLElement Object ( [0] => 23914175_laptop )
[2] => SimpleXMLElement Object ( [0] => price_range_10_50004 )
)
但是我只想要数组数据而不包含“SimpleXMLElement对象”。所以我添加了以下代码:
<?php
$attr_data = array();
foreach ($content->search as $attributeSelected)
{
$attr_data[] = json_decode(json_encode($attributeSelected['id']), true);
}
?>
现在给我的数据为:
Array (
[0] => Array ( [0] => 23914175_laptop )
[1] => Array ( [0] => 23914175_laptop )
[2] => Array ( [0] => price_range_10_50004 )
)
我不确定我做错了什么。我只想将数据保存到数组中,然后使用If语句检查数组是否包含特定数据。
答案 0 :(得分:2)
怎么样:
$attr_data[] = $attributeSelected['id'][0];
答案 1 :(得分:0)
您正在尝试存储对象,如果您需要第一个对象值,则应将第三行更改为:
$attr_data[] = $attributeSelected['id']->0;
答案 2 :(得分:0)
请添加一小段XML,它会让事情变得更加清晰。
将值{t}转换为string
:
$xml = simplexml_load_string($x); // assume XML in $x
$att = array();
foreach ($xml->search as $a) {
$att[] = (string)$a['id'];
}
答案 3 :(得分:0)
SimpleXMLElement类有一个__toString
方法,所以你可以直接调用它(这有点丑陋的IMO)或只是将它强制转换为字符串:
<?php
$attr_data = array();
foreach ($content->search as $attributeSelected)
{
$attr_data[] = (string) $attributeSelected['id'];
// Or
$attr_data[] = $attributeSelected['id']->__toString();
}
?>
了解详情