我想创建一个严格基于此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