变量的PHP数组设置

时间:2011-11-02 18:31:43

标签: php arrays api magento

我有一个项目列表,我希望通过数组提供给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
    )

)

我是否错误地构造了变量,还是需要以不同的方式将其提供给数组?

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)));

http://www.php.net/manual/en/function.explode.php