我正在尝试遍历具有以下电子邮件地址的数组: 数组(
,如果有匹配项,则获取地址的所有订单项。 应该返回:
以此类推。
foreach ($orders as $key => $value) {
$email = $value->getEmail();
$emailArr = [$email];
var_dump($emailArr);
if(isset($this->$email) == $emailArr) {
// if(isset($email) == $email) {
// // echo '<div>' . $email . '</div>';
$orderItems = $value->getOrderItems();
foreach($orderItems as $item) {
echo '<div>string is match</div>';
echo '<div>' . $item->getName() . '</div>';
}
} else {
echo '<div>nothing to show</div>';
我尝试了许多不同的方法,但是似乎没有进行准确的比较/匹配。这是一个练习,所有内容都经过硬编码,但仍然可以正常工作。
我对PHP还是陌生的,但是却在Webb上搜索并尝试了in_array(),trim()等。什么都行不通,但可能只是一个初学者的错误
答案 0 :(得分:0)
在循环外定义$emailArr
。然后将每个项目附加到它。
$emailArr = array(); // define here
foreach ($orders as $key => $value) {
$email = $value->getEmail();
if(in_array($email, $emailArr)) {
// skip or do something else
echo "Matched";
}
else {
array_push($emailArr, $email);
// do other stuff
echo "added new";
}
}