我想創建一個嚴格基於此XML模板(結構)的多維數組:PHP動態多維數組
<invoice>
<type></type>
<transport></transport>
<items>
<item-ordered>
<name></name>
<quantity></quantity>
</item-ordered>
</items>
</invoice>
我是一個PHP新手,所以我嘗試使用PHP的基本知識來解決它:
//This is from where I get all data for populating my XML/array structure
$products = $params['order']->getProducts();
$prName = array_column($products, 'product_name');
$prQuantity = array_column($products, 'product_quantity');
//Populating arrays with data
$item-ordered = array();
$items = array();
for($i = 0; $i < count($products); $i++) {
$item-ordered = array (
"name" => $prName[$i],
"quantity" => $prQuantity[$i]
);
array_push($items,$item-ordered); //using a hyphen appears to be invalid
)
$invoice = array (
"type" => "code:INVOICE",
"transport" => $customerTransport,
"items" => $items
)
但我嘗試使用包括破折號(連字符)的變量/數組名稱時遇到的問題。
所以我的第一個問題是我的解決方案是否正確。如果是這樣,我想知道我該如何處理這個連字符問題。最終數組應該與上面顯示的XML文件具有完全相同的結構,我無法更改XML文件本身。
只是'$ item_ordered'? –
PHP(以及具有類似c-派生語法的大多數常用語言)不允許在標識符中使用「-'字符。在PHP中,變量名稱必須與'$ [0-9a-zA-Z _] +'類似。考慮如果你想對變量使用減法,如果它們的名字中有連字符,會發生什麼。 – CollinD