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>
现在,我需要取消设置CardNumber!='5的整个对象 89785304326xxx' p>
我试过这个: p>
这没有任何作用。 有什么建议吗? p>
div> 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 ='5897853070424xxx';
foreach($ response as $ res)
{
if($ res-> CardNumber!= $ cardnumber)
{
unset($ res);
}
}
code > pre>
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');