2014-02-05 6 views
-2

У меня есть форма, которая представляет переменную, назовем ее $ _POST ['sku'].Извлечение значения из многомерного массива на основе условного оператора

Эта форма также представляет некоторые переменные внешнего веб-приложение (Shopify), который возвращает массив, как таковой:

[ «продукт»] [ «варианты»], который имеет до 27 вариантов, т.е.

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

Каждый вариант имеет несколько ключей, таких как:

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

То есть, вариант 0 имеет как уникальный идентификатор и единиц складского хранения, так же как и вариант 1, вариант 2, и т.д.

Я хотел бы использовать php для извлечения значения из ключа 'id', где значение 'sku' равно значению $ _POST ['sku'], представленному в моей форме. Например,

если $ _POST [ 'ы'] = 222

и [ 'продукта'] [ 'вариантов'] [3] [ 'ы'] = 222

тогда я хотел бы извлечь ['product'] ['variantants'] [3] ['id'].

Я здесь довольно утерян - любые идеи?

+0

перебрать все варианты. Проверьте, равенство 'sku' равно опубликованному, если да: получите id и сломайте, если нет, продолжите – 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

Внутри foreach ($ variable ['product'] ['variantants'] как $ i => $ variant) {где каждый вариант извлечен, ключ присваивается $ i и значение (весь массив, содержащий sku и id) присваивается $ варианту. См. [Документация PHP foreach] (http://www.php.net/manual/en/control-structures.foreach.php) для получения дополнительной информации. – Tularis

Смежные вопросы