Php 以编程方式构造数组
我正在编写一个PHP web应用程序,它使用API中的XML文档。我必须从返回的XML数据构造许多产品 我现在正在做的是使用xpath和循环将所有对象拉入子数组数组。然后我循环遍历数组数组,并将特定数组拉入它们自己的命名数组中。有没有办法用函数或类构造函数来实现这一点 我当前的代码如下所示: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
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,我不确定这在这里如何适用。你能详细说明这将如何解决这个问题吗?