У меня есть многомерный массив, состоящий из продуктов.У каждого подмассива есть тип продукта.ProductType находится в массиве внутри массива Product, так что;
0 => product [
productType [
id: 2
]
]
1 => product [
productType [
id: 1
]
]
2 => product [
productType [
id: 2
]
]
]
Мне нужно удалить весь элемент массива, если идентификатор уже существует, в этом примере мне нужно удалить EITHER array [0] или array [2], это не имеет значения какМне нужно только productType[id]
, чтобы заполнить поле.
Я сделал цикл, который создает массив идентификаторов, которые уже существуют, но он включает создание 2 новых массивов:
//This works but seems a bit inefficient
$productFinal = [];
$ids = [];
foreach ($products as $product) {
if (!in_array($product->getproductType()->getid(), $ids)) {
$productFinal[] = $product;
}
$ids[] = $product->getproductType()->getid();
}
Я получаю результаты, которые хочу, однако я уверен,что есть более эффективный способ сделать это, в идеале используя встроенную функцию php.