2012-07-03 65 views
0

匹配元素我有这样检索阵列

Array 
(
    [35635d5ebdd938d6360e65a9e2484073] => Array 
     (
      [rowid] => 35635d5ebdd938d6360e65a9e2484073 
      [id] => MYU_SC3 
      [qty] => 1 
      [price] => 4800 
      [name] => JAMB UTME Scratch Card 
      [service_image] => assets/img/jamb.jpg 
      [service_category] => cards 
      [subtotal] => 4800 
     ) 

    [d8df18561040f3d9bd9868f5c5aaa7c2] => Array 
     (
      [rowid] => d8df18561040f3d9bd9868f5c5aaa7c2 
      [id] => MYU_SC1 
      [qty] => 1 
      [price] => 1600 
      [name] => WAEC Scratch Card 
      [service_image] => assets/img/waec.jpg 
      [service_category] => cards 
      [subtotal] => 1600 
     ) 

    [a4a751dd9a69824eb3abb6f49c7a7f61] => Array 
     (
      [rowid] => a4a751dd9a69824eb3abb6f49c7a7f61 
      [id] => MYU_SC2 
      [qty] => 1 
      [price] => 1600 
      [name] => NECO Scratch Card 
      [service_image] => assets/img/neco.jpg 
      [service_category] => cards 
      [subtotal] => 1600 
     ) 

) 

我想要检索的另一个阵列

$card_skus = array("MYU_SC1","MYU_SC2","MYU_SC3"); 

AM通过该主阵列循环匹配元素的子阵列的阵列

foreach ($this->cart->contents() as $key => $item) { 
     if(in_array($item['id'], $card_skus)) 
     { 
     //Didn't know what to do at this point 
     } 
} 

我该如何做到这一点,感谢您的帮助

+2

'$ newArray [] = $项目[ '身份证'];'? –

+0

把这个放在你的if语句中:'$ newArray [] = $ item;'。然后在'foreach'循环之后执行'var_dump($ newArray);'。 – nickb

+0

@Truth非常感谢 – MrFoh

回答

0

我猜@nickb已经在评论中回答了,在写答案时没有看到它。

现在试试这个

$subArray = array(); 
foreach ($this->cart->contents() as $key => $item) { 
    if(in_array($item['id'], $card_skus)) 
    { 
     //Didn't know what to do at this point 
     $subArray[] = $item; 
    } 
} 

使用$子阵按您的要求