Witam
w pewnym projekcie na Laravelu dopisuje pewną funkcje w repozytorium z produktem. Chodzi o to żeby klient wpisywał sobie pewne atrybuty np kolor, rozmiar , itd. Funkcja ma porównać tablice podaną przez klienta (na razie nie ma żadnego interfejsu klienta wchodzi czysta teoretyczna tablica) z tablicą z produktami (produkty w mongo db). Tablica ma zagnieżdżone elementy. System tworzy kolekcje produktów i zwraca ją jako tablice. Tzn chodzi o to że jak klient wpisze np kolor niebieski to przyporządkuje w tej nowej tablicy wszystkie produkty z kolorem niebieskim (jeśli istnieją). Generalnie w bazie są duże tablice zagnieżdzone i trzeba operować na ich kluczach. np podczas przypisywania do zbioru zgodności wartości można użyć klucza WARTOŚĆ_SZEROKOŚCI_PRODUKTU___WARTOŚĆ_KOLORU_PRODUKTU, do którego przypisane zostaną produkty.
Tutaj przykład tablicy podanej przez użytkownika ['main.dimensions.width', 'main.visual.colors'] itd.
public function CheckArrayData ($values, $attribute )
{
// pobieram sobie wszystkie produkty z mojej bazy z produktem
$products = Product::get();
// spraawdzam iteruje produkty
foreach($products as $id => $product) {
// iteruje po tym co wpisał user w tablicy
foreach($values as $v) {
//sprawdzam czy atrybut istnieje w produktach
if(isset($product->{$attribute})) {
// jesli istnieje to tutaj chcialbym stworzyc klucz tablicy
// czyli stworzyc string, zlozony z wartosci parametrow uzytkownik
}
// potem trzeba przyporządkować elementy do tablicy wynikowej wg klucza utworzonego powyżej
// jakiś pomysł jak to zrobic? skorzystać z implode? in_array ? czy jakieś inne funkcje rozwiazania w Laravel?