Witam,
Próbuję zmienić stdClass Object na array, z pierwszym obiektem się to udało natomiast jeśli object jest jedną z wartości array to komplikuje sprawę. Problematyka polega na tym, że pobieram parametry dotyczące danej kategorii Allegro. Następnie wynik dekoduję z json by móc otrzymać pierwsze wartości, a następnie jak natrafiam na stdClass Object używam funkcji get_object_vars(). Kłopot jest wtedy gdy próbuję wykonać kolejną pętlę foreach i w niej ponownie obiekt zmienić na array. Próbowałam zastosować instrukcję warunkową by sprawdzać czy dana wartość jest obiektem i wtedy ja zmienić na array lecz również nic to nie dało.
Kod poniżej:
public function parametersCategoryAllegro()
{
$parametersCategoryAllegro = "https://api.allegro.pl.allegrosandbox.pl/sale/categories/89012/parameters";
$parametersCategory = $this->api->getParameters($parametersCategoryAllegro);
$parametersCategory = json_decode($parametersCategory);
echo "</br>Parametry kategorii:</br>";
foreach($parametersCategory as $parametersCat)
{
foreach($parametersCat as $catParametersValue)
{
$arrayParameters = get_object_vars($catParametersValue);
print_r("Parameter id: " . $arrayParameters['id'] . " =====> Parametr name: " . $arrayParameters['name']);
echo "</br>";
print_r($arrayParameters);
echo "</br>";
// foreach($catParametersValue as $parameterValue)
// {
// print_r($parameterValue);
// echo "</br>";
// $arrayParameterValue = get_object_vars($parameterValue);
// print_r($arrayParameterValue);
// echo "</br>";
// }
// $arrayParameters = get_object_vars($parameterValue);
// print_r($arrayParameters);
// echo "</br>";
// }
}
}
}
Poniżej jest fragment odpowiedzi serwera z danymi na których operuję:
Parameter id: 11323 =====> Parametr name: Stan
Array ( [id] => 11323 [name] => Stan [type] => dictionary [required] => 1 [requiredForProduct] => [unit] => [options] => stdClass Object ( [variantsAllowed] => [variantsEqual] => 1 [ambiguousValueId] => [dependsOnParameterId] => [requiredDependsOnValueIds] => [displayDependsOnValueIds] => [describesProduct] => [customValuesEnabled] => ) [dictionary] => Array ( [0] => stdClass Object ( [id] => 11323_1 [value] => Nowy [dependsOnValueIds] => Array ( ) ) [1] => stdClass Object ( [id] => 11323_2 [value] => Używany [dependsOnValueIds] => Array ( ) ) [2] => stdClass Object ( [id] => 11323_246514 [value] => Nowy z defektem [dependsOnValueIds] => Array ( ) ) ) [restrictions] => stdClass Object ( [multipleChoices] => ) )
Parameter id: 224017 =====> Parametr name: Kod producenta
Array ( [id] => 224017 [name] => Kod producenta [type] => string [required] => [requiredForProduct] => [unit] => [options] => stdClass Object ( [variantsAllowed] => [variantsEqual] => [ambiguousValueId] => [dependsOnParameterId] => [requiredDependsOnValueIds] => [displayDependsOnValueIds] => [describesProduct] => 1 [customValuesEnabled] => ) [restrictions] => stdClass Object ( [minLength] => 2 [maxLength] => 50 [allowedNumberOfValues] => 1 ) )
Dziękuję za wszelką pomoc