PHP - 如何在索引中按值取消数组索引

PHP  - 如何在索引中按值取消数组索引

问题描述:

I have an array of objects ($response) that looks like this:

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
        )

)

Now, I need to unset the entire object where CardNumber != '589785304326xxx'

I have tried this:

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

This does nothing. Any suggestions?

我有一个对象数组($ response),如下所示: p> Array ( [0] => stdClass Object ( [CardNumber] => 5897853070424xxx [CardHolderName] => P Stoltz [CardHolderContactNumber] => \ n [CardHolderEmailAddress] => [CardExpiryDate] => 2017-09-01T00:00:00 [CardHolderTypeID] => 2 [LastUsedDate] => 2017-05-25T00:00:00 ) [1] => stdClass对象 ( [CardNumber] => 589785304326xxx [CardHolderName] => J Stoltz [CardHolderContactNumber] => [CardHolderEmailAddress] => ; [CardExpiryDate] => 2017-09-01T00:00:00 [CardHolderTypeID] => 2 [LastUsedDate] => 2017-05-25T00:00:00 ) \ n) code> pre>

现在,我需要取消设置CardNumber!='5的整个对象 89785304326xxx' p>

我试过这个: p>

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

这没有任何作用。 有什么建议吗? p> div>

What you have tried will only unset the current object in the loop. You need to do the following:

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

Use unset() inside the loop.

eg:

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