У меня есть массив объектов категорий, и в каждой из них у меня есть список подкатегорий одного типа, т.е.item A -> itemA 1, itemA 2 и т. д. item B ... когда я пересекаю и сопоставляю подкатегорию, данные не сохраняются при заданных изменениях.Код выглядит нормально, есть мысли?
foreach ($cats as $cat) {
if($cat->getId() == $catChanged->getCategory_id()) {
foreach ($cat->getSubCats() as $sc) {
if($sc->getId() == $id) {
var_dump($sc, $key);
$sc = $catChanged;
var_dump($sc, $key);
}
}
}
}
var_dump(serialize($cats));
Как вы можете видеть, var_dumps использовались, показывая до и после, однако $ cats в конце не изменяется, когда это должно быть?
__ _ __ _ __ _ _ FIX _ __ _ __ _ __
В конце я удалил этот элемент из массива и вставил отредактированный объект в тот жепозиция.Работает нормально, спасибо за ваши ответы.
foreach ($cats as $cat) {
if($cat->getId() == $catChanged->getCategory_id()) {
$i = -1;
foreach ($cat->getSubCats() as $sc) {
$i++;
if($sc->getId() == $id) {
$tmp = AdminUtils::removeItem($cat->getSubCats(), $i); //remove item
$cat->setSubCats(AdminUtils::insertArrayIndex($tmp, $catChanged, $i)); //re-insert at index
break(2);
}
}
}
}