Witam,
pobrałam poprzez api allegro parametry kategorii do każdego produktu które mam jako stdClass Object asocjacyjne z zagnieżdżonymi tablicami zwykłymi oraz stdClass Object. Przykład poniżej (niepełny ze względu na ilość danych):
stdClass Object (
[parameters] => Array (
[0] => stdClass Object ( [id] => 11323 [name] => Stan [type] => dictionary [required] => 1 ) )
[1] => stdClass Object ( [id] => 129369 [name] => Marka [type] => dictionary [required] => 1 [dictionary] => Array ( [0] => stdClass Object ( [id] => 129369_506545 [value] => 12 Benefits [dependsOnValueIds] => Array ( ) ) [1] => stdClass Object ( [id] => 129369_513517 [value] => 3LAB [dependsOnValueIds] => (....)Array ( ) )
[3] => stdClass Object ( [id] => 15604 [name] => Rodzaj rzęs [type] => dictionary [required] => 1)
[4] => stdClass Object ( [id] => 130250 [name] => Typ [type] => dictionary [required] => 1
)
Chciałam się dowiedzieć w jaki sposób mogę wyfiltrować obiekt by jeśli zawiera tylko parametry wymagane [required] = 1, stan i marka to mają zostać wyświetlone ich identyfikatory, w przeciwnym wypadku należy przejść do kolejnego produktu. Czyli jeśli kategoria produktu zawiera parametry tak jak w powyższym przykładzie to powinien zostać pominięty ponieważ oprócz stanu i marki zawiera również rodzaj rzęs i typ.
W jaki sposób mogę to zrobić ?
$allegroCategoryParameters = "https://api.allegro.pl.allegrosandbox.pl/sale/categories/" . $allegroCategoryId . "/parameters";
$parametersCategory = $this->api->getParameters($allegroCategoryParameters);
$parametersCategory = json_decode($parametersCategory);
foreach ($parametersCategory->parameters as $allegroParameters)
{
if ($allegroParameters->required == 1 && in_array($allegroParameters->name == 'Marka', $parametersCategory->parameters) && in_array($allegroParameters->name == 'Stan', $parametersCategory->parameters))
{
echo "<b>Produkt: $i</b>";
echo '</br>';
echo '</br>Wymagane parametry Allegro</br>';
print_r($allegroParameters->name);
echo '</br>';
}
else
{
continue;
}
}