2014-02-05 54 views
-2

我有一個提交變量的表單,我們稱之爲$ _POST ['sku']。基於條件語句從多維數組中提取值

這種形式還提出了一些變量到外部的web應用(Shopify),它返回一個陣列,例如:

[「產物」] [「變體」],它具有高達27點的變體,即

['product']['variants'][1] 
['product']['variants'][2] 
['product']['variants'][3] ... 
['product']['variants'][27] 

每個變體具有多個鍵,例如:

['product']['variants'][0]['id'] 
['product']['variants'][0]['sku']; 

也就是說,變體0既具有唯一的ID和SKU一樣,變體1,變體2等

我想用php從'id'鍵中提取'sku'值等於從我的表單提交的$ _POST ['sku']值的值。例如,

如果$ _POST [ 'SKU'] = 222

和[ '產物'] [ '變體'] [3] [ 'SKU'] = 222

然後我想提取['product'] ['variants'] [3] ['id']。

我在這裏很迷路 - 有什麼想法嗎?

+0

遍歷所有變體。檢查'sku'是否等於張貼的,如果是這樣的話:獲取id和break,如果不是,繼續 – kero

回答

0

所以基本上:

foreach($variable['product']['variants'] as $i=>$variant) { 
    if($variant['sku'] == $_POST['sku']) { 
     // found it in $variable['product']['variants'][$i] so variant $i 
     break; 
    } 
} 
+0

好吧,我明白你的意思了,但$ i在哪裏定義? – user2073336

+0

Inside foreach($ variable ['product'] ['variants'] as $ i => $ variant){其中每個變體都被提取,鍵被分配給$ i並且值(包含sku和id的整個數組)被分配到$ variant。查看[PHP的foreach文檔](http://www.php.net/manual/en/control-structures.foreach.php)瞭解更多信息 – Tularis