PHP итерация по каждому элементу массива свойств объекта без увеличения значения
Пожалуйста помоги! Я смотрел на это слишком долго. У меня есть свойство объекта, который является массивом объектов. Я хочу передать объект методу родительского объекта и найти в этом свойстве массива совпадение, и, если он найден, вернуть индекс. В противном случае мне нужно вернуть -1. По какой-то причине это не повторяется. Если я повторю, каким должно быть свойство $order->product (на которое указывает указатель во время цикла), оно не меняется. Я сбросил массив, и я знаю, что он содержит разные значения. Я могу показать вам большой дамп var, но я решил сначала спросить, есть ли простая ошибка или что-то еще, что очевидно для вас, что я пропустил.
public function getItemIndex($prod) {
if (isset($this->orders)){
foreach($this->orders as $key => $order) {
if ($order->product == $prod) { //if I echo this $order->product to the screen, it is unchanging
return $key;
} else { return -1; }
}
}
else {
return -1;
}
}
Если у кого-то есть какие-либо идеи, я открыт для обсуждения и публикации дополнительной информации по мере необходимости. Спасибо за ваше время.
1 ответ
Ты всегда return
значение на первой итерации, либо $key
или же -1
, Попробуйте удалить else
заявление, которое вы в настоящее время имеете. Это позволит вам полностью перебрать весь массив.
public function getItemIndex($prod) {
if (isset($this->orders)){
foreach($this->orders as $key => $order) {
if ($order->product == $prod) { //if I echo this $order->product to the screen, it is unchanging
return $key;
}
}
}
return -1;
}
Это будет ТОЛЬКО return -1
однажды он перебрал все и не нашел ничего подходящего. Все равно будет return $key
если он найдет совпадение.