2017-06-21 103 views
0

我有一個看起來像這樣的對象($響應)的內部數組:PHP - 如何通過值取消設置數組索引的索引

Array 
(
    [0] => stdClass Object 
     (
      [CardNumber] => 5897853070424xxx 
      [CardHolderName] => P Stoltz 
      [CardHolderContactNumber] => 
      [CardHolderEmailAddress] => 
      [CardExpiryDate] => 2017-09-01T00:00:00 
      [CardHolderTypeID] => 2 
      [LastUsedDate] => 2017-05-25T00:00:00 
     ) 
    [1] => stdClass Object 
     (
      [CardNumber] => 589785304326xxx 
      [CardHolderName] => J Stoltz 
      [CardHolderContactNumber] => 
      [CardHolderEmailAddress] => 
      [CardExpiryDate] => 2017-09-01T00:00:00 
      [CardHolderTypeID] => 2 
      [LastUsedDate] => 2017-05-25T00:00:00 
     ) 

) 

現在,我需要取消整個對象,其中CardNumber !=

我已經試過這個 '589785304326xxx':

$cardnumber = '5897853070424xxx'; 
    foreach($response as $res) 
    { 
     if($res->CardNumber != $cardnumber) 
     { 
      unset($res); 
     } 
    } 

這什麼都不做。有什麼建議麼?

+0

我寧願建議的['array_filter'](http://php.net/array_filter)。 – deceze

回答

2

你試過的東西只會取消循環中的當前對象。您需要執行以下操作:

foreach($response as $key => $res) { 
    if($res->CardNumber != $cardnumber) { 
     unset($response[$key], $res); 
     continue; 
    } 
} 
+0

那裏'繼續'是相當多餘的。 – deceze

+0

謝謝@Ryan Hipkiss - 那精彩的作品。只要定時器允許我會接受。 – Jacques

+0

@deceze只是爲了確保xD –

-1

在循環內部使用unset()

例如:

unset('key value', 'your array name');