在PHP中用数组中的字符串替换SimpleXMLObject对象
我有一个数组,其中包含从AmazonAPI获得的信息,并使用SimpleXML对其进行解析。这给了我一个如下所示的数组:在PHP中用数组中的字符串替换SimpleXMLObject对象,php,arrays,xml,Php,Arrays,Xml,我有一个数组,其中包含从AmazonAPI获得的信息,并使用SimpleXML对其进行解析。这给了我一个如下所示的数组: [ [ 0 => SimpleXMLElement Object (0 => B00TU53O8Q) ], [ 0 => SimpleXMLElement Object (0 => B00TU53O8Q), 1 => SimpleXMLElement Object (0 =>
[
[
0 => SimpleXMLElement Object (0 => B00TU53O8Q)
], [
0 => SimpleXMLElement Object (0 => B00TU53O8Q),
1 => SimpleXMLElement Object (0 => B015K13HWQ)
], [
0 => SimpleXMLElement Object (0 => B00TU53O8Q)
], [
...
]
]
现在,我想把这个数组转换成一种更简单的格式,不再有任何SimpleXML对象
基本上,我只需要一个数组,其中只包含它们所表示的字符串:
[
0 => B00TU53O8Q,
1 => B015K13HWQ,
2 => B00TU53O8Q,
1 => B00TU53O8Q
...
]
然后我想把这个数组分割成一个二维数组,看起来像这样:
[
0 => [
0 => B00TU53O8Q
1 => B00TU53O8Q
2 => B015K13HWQ
3 => B00TU53O8Q
4 => B00TU53O8Q
],
1 => [
0 => B015K13HWQ
...
]
...
]
我不知道怎么做。你能帮帮我吗 一开始我就认为你的if陈述是错误的。如果要进行比较,则应为double==。实际上,您将$asinValue设置为'Asin Not Found',它将计算为true。您似乎永远也无法访问代码的else部分。以下是一个处理输入的函数:
function translate($data, &$result) {
if (is_array($data)) {
foreach($data as $element) {
translate($element, $result);
}
} else {
$result[] = (string) $data;
}
}
可以这样称呼:
// some test data:
$data = array(
array(
new SimpleXMLElement("<test>B00TU53O8Q</test>")
),
array(
new SimpleXMLElement("<test>B00TU53O8Q</test>"),
new SimpleXMLElement("<test>B015K13HWQ</test>")
),
array(
new SimpleXMLElement("<test>B00TU53O8Q</test>")
),
array(
new SimpleXMLElement("<test>B00TU53O8Q</test>"),
new SimpleXMLElement("<test>B015K13HWQ</test>")
)
);
$result = array();
translate($data, $result);
$chunks = array();
while (count($result)) {
$chuncks[] = array_slice($result, 0, 5);
$result = array_slice($result, 5);
}
print_r ($chuncks);
Ouput根据测试数据给出了2个数据块:
Array
(
[0] => Array
(
[0] => B00TU53O8Q
[1] => B00TU53O8Q
[2] => B015K13HWQ
[3] => B00TU53O8Q
[4] => B00TU53O8Q
)
[1] => Array
(
[0] => B015K13HWQ
)
)
输入是我从AmazonAPI获得的信息。我现在就更新代码。更新代码。感谢我的意见和期望的回复。谢谢。更新了代码。谢谢。再看一次这个问题。我把它改了,以找到更适合我需要的东西。谢谢你的快速回复。我现在就试试。谢谢