我有一个项目列表,我希望通过数组提供给API,但它是从一个单独的对象构建的。我以为我可以循环遍历对象中的项目来构造一个变量,然后我可以将其提供给数组但是有些东西是断开连接的。这可能比解释更容易看到。
我使用的代码是:
//Set up the parser object
$parser = new XMLParser($xml);
$parser->Parse();
$skuList = '';
// Pull the inventory of the requested SKUs from Magento for comparison later
foreach($parser->document->product as $product)
{
$skuList .= "'" . $product->sku[0]->tagData . "',";
}
echo $skuList;
print_r( $proxy->call($sessionId, 'product_stock.list', array(array($skuList))));
如果我在命令行运行
'1DAFPOT5','8GAIL','26BULK30',Array
(
)
现在,如果我通过将变量的内容直接放在调用中来改变print_r行,就像这样
print_r( $proxy->call($sessionId, 'product_stock.list', array(array('1DAFPOT5','8GAIL','26BULK30', ))));
我得到的是我正在寻找的输出
'1DAFPOT5','8GAIL','26BULK30',Array
(
[0] => Array
(
[product_id] => 2154
[sku] => 26BULK30
[qty] => 19.0000
[is_in_stock] => 1
)
[1] => Array
(
[product_id] => 2255
[sku] => 8GAIL
[qty] => 16.0000
[is_in_stock] => 1
)
[2] => Array
(
[product_id] => 2270
[sku] => 1DAFPOT5
[qty] => 23.0000
[is_in_stock] => 1
)
)
我是否错误地构造了变量,还是需要以不同的方式将其提供给数组?
答案 0 :(得分:1)
$ skuList看起来像一个数组,但仍然是一个字符串。 你必须在foreach循环后执行此操作:
$skuList = explode(',',$skulist);
或者,更好的是,使skuList成为一个数组,因为beginnig:
$skuList = array();
foreach($parser->document->product as $product)
{
$skuList[] = $product->sku[0]->tagData;
}
print_r( $proxy->call($sessionId, 'product_stock.list', array($skuList)));