我有以下$输入:
elements: array:2 [
0 => Tournament {
id: 1
amountStaking: Price {
value: 2500
currency: "EUR"
}
}
1 => Tournament {
id: 2
amountStaking: Price {
value: 2500
currency: "EUR"
}
}
]
我要实现的是一个函数,该函数将根据每个Tournament
的$amountStaking
属性的"平等"返回对象或false
。在上一个输入中,它应返回"常见"价格对象:
Price {
value: 2500
currency: "EUR"
}
但是,如果$currency
值之一是" USD",则应返回false
。
$last = null;
foreach ($elements as $e) {
if ($last === null) {
$last = e->amountStaking;
continue;
}
if ($last->value != $e->value || $last->currence != $e->currency) {
return false;
}
$last = e->amountStaking;
}
return $last;
您穿过数组,直到一个条目与上一个条目不匹配。您立即返回false。如果它通过返回最后一个对象。
也许你应该
return clone $last;
使其成为一个新对象,以防稍后进行修改。
按照"价格不可知论"的要求:
$last = null;
foreach ($elements as $e) {
if ($last === null) {
$last = e->amountStaking;
continue;
}
foreach ($last as $key => $val) {
if (!property_exists($e, $key) || $last->$key != $e->$key) {
return false;
}
}
$last = e->amountStaking;
}
return $last;