2012-10-10 9 views
0

下面是一個陣列的一個例子是輸出:如何通過子陣列循環,以查看是否值是返回字符串

Array ([CART] => Array ([ITEMS] => Array ([0] => Array ([product_id] => 269194 [variation_id] => 0 [options] => Array () [quantity] => 1 [product_name] => 15 Top Hits for Easy Piano [product_code] => HL102668 [product_price] => 14.9900 [original_price] => 14.9900 [default_currency] => 1 [customer_group] => [product_fields] => Array ()) [1] => Array ([product_id] => 266421 [variation_id] => 0 [options] => Array () [quantity] => 1 [product_name] => Whistle [product_code] => HD245839 [product_price] => 3.9900 [original_price] => 3.9900 [default_currency] => 1 [customer_group] => [product_fields] => Array ())) [LAST_UPDATED] => 1349829499 [NUM_ITEMS] => 2) [JustAddedProduct] => [CHECKOUT] => Array ()) 

沒有爲每個獨特的產品的陣列(在這個例子中有兩個獨特的產品)。有時只有一個,有時可能有20個或更多的獨特產品。

對我很重要的值是[product_code]。您可以在第一個數組中看到[product_code] => HL102668。第二個是[product_code] => HD245839。

如何檢查「[HD]」是否存在於任何[product_code]值中?如果是這樣,我需要返回false。

謝謝你的幫助!

回答

0

訪問您的子陣列:

$products = $array['CART']['ITEMS']; 

遍歷您的子陣列:

foreach ($products as $product) 

檢查HD存在於你的產品代碼,有兩種簡單的strstr,或者使用的preg_match正則表達式(如果你對它感到舒服)。

if (strstr($product['product_code'], "HD")) { 
      // Do your actions 
    } 
+0

謝謝!我遇到的問題是有一個「HD」和一個沒有「HD」的實例。因此,它正在爲兩個實例返回我的操作。這是否意味着我不能使用foreach? – osakagreg

+0

我看到了...我只計算了實例($ i = 0;),然後對於那些hd實例($ i ++),它工作正常。再次感謝! – osakagreg

+0

好的,如果你想看看有多少高清產品,是的。如果你想跳過處理高清產品,只需把你的處理代碼放在else語句中 – janenz00

相關問題