2011-11-02 66 views
0

我有一個項目列表,我想通過一個數組提供給API,但它是從一個單獨的對象構建的。我想我可以循環通過對象中的項目來構建一個變量,然後我可以將其饋送到數組,但某些內容已斷開連接。這可能比解釋更容易看到。從變量PHP陣列設置

我使用的代碼是這樣的:

//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

類似的問題(但更復雜的),也許它幫助:http://stackoverflow.com/q/7933982/367456 – hakre

回答

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

+0

設置它作爲一個數組開始做的伎倆。謝謝! –