我对array_search函数有点困惑(或者我正在尝试使用不正确的东西。)我有一堆事务对象,(关于客户的事务)每个都是一个值数组。传入电子邮件地址后,我得到一个对象,该对象是使用该电子邮件地址的一个事务。示例如下。我从命令print_r($results)
得到它:
stdClass Object
(
[OverallStatus] => OK
[RequestID] => 4564564654-65465464565-4654654
[Results] => Array
(
[0] => stdClass Object
(
[thing1] =>
[thing2] =>
[Status] => Active
[ID] => 5555555555
[email_addy] => someaddy@something.com
)
[1] => stdClass Object
(
[thing1] =>
[thing2] =>
[Status] => Active
[ID] => 6666666666
[email_addy] => someaddy@something.com
)
[2] => stdClass Object
(
[thing1] =>
[thing2] =>
[Status] => Active
[ID] => 6666666666
[email_addy] => someaddy@something.com
)
)
)
我毫不费力地得到这个输出。我的问题是我需要确定某人是否有特定ID。我试图使用foreach但我没有回到我需要的东西。代码和输出如下。
foreach ($results as $key => $value) {
echo "Key: $key; Value: $value<br />\n";
}
输出
Key: OverallStatus; Value: OK
Key: RequestID; Value: 4564564654-65465464565-4654654
Key: Results; Value: Array
我真正需要知道的是,如果客户的ID为5555555555
。这个数字将始终保持不变。我在这方向走错了吗?
答案 0 :(得分:3)
你有object
的数组,所以你应该首先得到数组results
,然后迭代它,试试这个:
foreach ($results->Results as $key => $value) {
if($value->ID == 55555555) echo 'found at position'.$key;//if id is unique , add a break;
}
答案 1 :(得分:2)
您需要遍历$ results-&gt;结果。
foreach ($results->Results as $key => $value) {
if($value->ID == 5555555555)
print "Match found";
}
答案 2 :(得分:1)
您应该再次循环results
数组。请尝试关注foreach
foreach ($results as $key => $value) {
if($key == "Results") {
foreach($value as $v) {
if($v->ID == "5555555555") {
echo "I found you";
break;
}
}
} else {
echo "Key: $key; Value: $value<br />\n";
}
}
答案 3 :(得分:0)
循环'$ results-&gt;结果'并检查循环,如果ID = 5555555555,如下所示:
foreach ($results->Results as $value) {
if($value->ID == 5555555555) {
//do something
}
}
答案 4 :(得分:0)
它将类似于以下内容:
$transactions = $results->Results; //get results array
foreach ($transactions as $transaction) { // loop through each transaction object.
echo $transaction->ID . '<br />'; // print out the id of each transaction.
}