我有一个数组,其中包含从Amazon API获取的信息并使用SimpleXML对其进行解析。这给了我一个如下所示的数组:
[
[
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
...
]
...
]
我不知道该怎么做。你能帮帮我吗?!
答案 0 :(得分:1)
以下是处理输入的功能:
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);
如果你想以5块的形式分解 $ result 数组,那么就这样进行:
$chunks = array();
while (count($result)) {
$chuncks[] = array_slice($result, 0, 5);
$result = array_slice($result, 5);
}
print_r ($chuncks);
输出,基于测试数据,给出2个块:
Array
(
[0] => Array
(
[0] => B00TU53O8Q
[1] => B00TU53O8Q
[2] => B015K13HWQ
[3] => B00TU53O8Q
[4] => B00TU53O8Q
)
[1] => Array
(
[0] => B015K13HWQ
)
)
答案 1 :(得分:0)
马上我认为你的if语句错了。如果要进行比较,应该是双==。基本上你设置$ asinValue等于&#39; Asin Not Found&#39;它会评估真实。看起来你似乎没有进入代码的其他部分。