我有一个看起来像这样的数组: http://pastebin.com/jtFBeQ88
(小部分,使用链接查看完整数组)
string(635) "<InventoryStatus>
<ItemID>171770899535</ItemID>
<Quantity>0</Quantity>
<SKU>0000003830-000011299</SKU>
</InventoryStatus>
<InventoryStatus>
<ItemID>171770899535</ItemID>
<Quantity>0</Quantity>
<SKU>0000003830-000011303</SKU>
</InventoryStatus>
<InventoryStatus>
<ItemID>171770899535</ItemID>
<Quantity>0</Quantity>
<SKU>0000003830-000011583</SKU>
</InventoryStatus>
<InventoryStatus>
<ItemID>171770899535</ItemID>
<Quantity>0</Quantity>
<SKU>0000003830-000013149</SKU>
</InventoryStatus>
<InventoryStatus>
<ItemID>171770899535</ItemID>
<Quantity>0</Quantity>
<SKU>0000003830-000013154</SKU>
</InventoryStatus>
我正在尝试从InventoryStatus级别提取4个元素的数据集。 此输出的示例如下所示。
<InventoryStatus>
<ItemID>171770899535</ItemID>
<Quantity>0</Quantity>
<SKU>0000003830-000011303</SKU>
</InventoryStatus>
<InventoryStatus>
<ItemID>171770899535</ItemID>
<Quantity>0</Quantity>
<SKU>0000003830-000011583</SKU>
</InventoryStatus>
<InventoryStatus>
<ItemID>171770899535</ItemID>
<Quantity>0</Quantity>
<SKU>0000003830-000013149</SKU>
</InventoryStatus>
<InventoryStatus>
<ItemID>171770899535</ItemID>
<Quantity>0</Quantity>
<SKU>0000003830-000013154</SKU>
</InventoryStatus>
我一直在使用array_slice,但我似乎只能指定一个计数。 所以,如果我使用4,那么它的4个节点从顶部开始。 我可以使用20的计数,因为每个节点总是为5.但是假设没有添加额外的节点。
如何使用Key提取数据而不是数字。
foreach (array_slice($xmlReq, 4) as $slice) {
echo implode(' ', $slice), "\n"; }
有些事情:
foreach (array_slice(xmlReq->InventoryStatus, 4) as $slice {
Echo $slice ."Should show JUST 4 Node sets of InventoryStatus"
}
也许array_slice不是那种方法,如果不是更适合使用
答案 0 :(得分:1)
使用array_chunk()
foreach (array_chunk($xmlReq, 4) as $slice) {
echo implode(' ', $slice), "\n";
}
来自手册http://php.net/manual/en/function.array-chunk.php
array array_chunk(array $ array,int $ size [,bool $ preserve_keys = false])
将数组块化为具有大小元素的数组。最后一个块可能包含少于大小的元素。
答案 1 :(得分:0)
将其视为XML并对其进行解析,例如与if (iBlowedUp = true)
{
iBlowedUp = false;
StartCoroutine (waitForIt ());
Destroy (tf);
tfpf = Instantiate (Resources.Load ("Prefabs/tfpf")) as GameObject;
}
:
SimpleXml
在根标记中包裹$xml = simplexml_load_string("<set>$string</set>"); // assume XML in $string
$count = 0;
foreach ($xml->xpath("/set/InventoryStatus") as $item) {
echo $item->asXML() . PHP_EOL;
$count++;
if ($count > 3) break;
}
,使其成为对象,遍历$string
个节点,<InventoryStatus>
它们,计数到4。
为整个echo
字符串执行此操作。
在行动中看到它:https://eval.in/537665