Php 以编程方式构造数组

Php 以编程方式构造数组,php,arrays,class,Php,Arrays,Class,我正在编写一个PHP web应用程序,它使用API中的XML文档。我必须从返回的XML数据构造许多产品 我现在正在做的是使用xpath和循环将所有对象拉入子数组数组。然后我循环遍历数组数组,并将特定数组拉入它们自己的命名数组中。有没有办法用函数或类构造函数来实现这一点 我当前的代码如下所示: if ( $products_results_list[$key]["sChgDesc"] == "Small Box" ) { $small_box = array( "Charg

我正在编写一个PHP web应用程序,它使用API中的XML文档。我必须从返回的XML数据构造许多产品

我现在正在做的是使用xpath和循环将所有对象拉入子数组数组。然后我循环遍历数组数组,并将特定数组拉入它们自己的命名数组中。有没有办法用函数或类构造函数来实现这一点

我当前的代码如下所示:

if ( $products_results_list[$key]["sChgDesc"] == "Small Box" ) {
    $small_box = array(
        "ChargeDescID" => $products_results_list[$key]["ChargeDescID"],
        "sChgDesc" => $products_results_list[$key]["sChgDesc"],
        "dcPrice" => $products_results_list[$key]["dcPrice"],
        "dcTax1Rate" => ".0" . $products_results_list[$key]["dcTax1Rate"],
        "dcInStock" => $products_results_list[$key]["dcInStock"],
    );
}
在写了8次以上的if语句之后,我想一定有比把所有内容都写出来更好的练习

我想做一些类似的事情:

product_constructor($argument, $product_name) {
  if ( $arguement ) {
    $product_name = array(
        "ChargeDescID" => $products_results_list[$key]["ChargeDescID"],
        "sChgDesc" => $products_results_list[$key]["sChgDesc"],
        "dcPrice" => $products_results_list[$key]["dcPrice"],
        "dcTax1Rate" => ".0" . $products_results_list[$key]["dcTax1Rate"],
        "dcInStock" => $products_results_list[$key]["dcInStock"],
    );
}
然后根据需要调用函数或构造函数,如:

product_constructor( '$products_results_list[$key]["sChgDesc"] == "Small Box"', '$small_box');
我实际上尝试了上面的代码,但它抛出了错误。尽管我每天都在使用PHP,但我仍然不太了解构造函数,我认为这可能是学习如何正确使用它的绝佳机会


我不确定类是否是正确的选择,因为我以后需要将产品本身拉入产品包类。

为什么不像SimpleXMLElement那样将xml作为节点使用?可以动态创建具有特定名称的变量。如果
$str='myvar'
,那么运行
$$str=1
会给您一个变量
$myvar
,其值为
1
。daremachine,我不熟悉SimpleXMLElement,并且已经使用DOMXPath解析了xml文档。DJDavid98,我不确定这在这里如何适用。你能详细说明这将如何解决这个问题吗?