как получить доступ ко 2-му массиву в ассоциативном массиве - PullRequest
0 голосов
/ 05 июля 2019

У меня есть массив, возвращенный из json, я могу получить доступ к значениям из одной части массива, но не могу получить доступ к значениям из другой части массива

echo '<strong>Barcode Number:</strong> ' . $response->products[0]->barcode_number . '<br><br>';

echo '<strong>Product Name:</strong> ' . $response->products[0]->product_name . '<br><br>';

echo '<strong>Description:</strong> ' . $response->products[0]->description . '<br><br>';

echo '<strong>Description:</strong> ' . $response->stores[0]->store_name . '<br><br>';

Я получаюПервые три штрафа, но последний для магазинов возвращает ошибку

Штрих-код: 077341125112

Наименование продукта: Нестандартные аксессуары 89960W E-Tek Butane Torch

Описание:Бутан факел, 89960W идеально подходит для вашего домашнего гаража или вашего автомобиля.Может использоваться для быстрого ремонта.

Примечание: неопределенное свойство: stdClass :: $ stores в C: \ xampp \ htdocs \ customs \ production \ test-barcodelookup.php в строке 20

Примечание: Попытка получить свойство 'store_name' необъекта в C: \ xampp \ htdocs \ customs \ production \ test-barcodelookup.php в строке 20

<code>$ch = curl_init(); // Use only one cURL connection for multiple queries

$data = get_data($url, $ch);

$response = array();
$response = json_decode($data);

echo '<strong>Barcode Number:</strong> ' . $response->products[0]->barcode_number . '<br><br>';

echo '<strong>Product Name:</strong> ' . $response->products[0]->product_name . '<br><br>';

echo '<strong>Description:</strong> ' . $response->products[0]->description . '<br><br>';

echo '<strong>Description:</strong> ' . $response->stores[0]->store_name . '<br><br>';



echo '<strong>Entire Response:</strong><pre>';
print_r($response);
echo '
';function get_data ($ url, $ ch) {curl_setopt ($ ch, CURLOPT_URL, $ url);curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, 0);curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, 0);$ data = curl_exec ($ ch);curl_close ($ ч);вернуть $ data;}

Ниже возвращается массив

Весь ответ:

stdClass Object
(
    [products] => Array
        (
            [0] => stdClass Object
                (
                    [barcode_number] => 077341125112
                    [barcode_type] => UPC
                    [barcode_formats] => UPC 077341125112, EAN 0077341125112
                    [mpn] => 0007734112511
                    [model] => 89960w
                    [asin] => 
                    [product_name] => Custom Accessories 89960W E-Tek Butane Torch
                    [title] => 
                    [category] => Hardware > Tools > Hardware Torches
                    [manufacturer] => 
                    [brand] => Etek
                    [label] => 
                    [author] => 
                    [publisher] => 
                    [artist] => 
                    [actor] => 
                    [director] => 
                    [studio] => 
                    [genre] => 
                    [audience_rating] => 
                    [ingredients] => 
                    [nutrition_facts] => 
                    [color] => 
                    [format] => 
                    [package_quantity] => 
                    [size] => 
                    [length] => 
                    [width] => 
                    [height] => 
                    [weight] => 
                    [release_date] => 
                    [description] => Butane Torch, 89960W is ideal for your home garage or your car.  Can be used for quick repairs.
                    [features] => Array
                        (
                        )

                    [images] => Array
                        (
                            [0] => https://images.barcodelookup.com/3001/30014169-1.jpg
                        )

                    [stores] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [store_name] => Wal-Mart.com USA, LLC
                                    [store_price] => 14.97
                                    [product_url] => http://www.walmart.com/ip/Custom-Accessories-89960W-E-Tek-Butane-Torch/29029306
                                    [currency_code] => USD
                                    [currency_symbol] => $
                                )

                            [1] => stdClass Object
                                (
                                    [store_name] => Jet.com
                                    [store_price] => 14.20
                                    [product_url] => http://jet.com/product/detail/a43035df304c4551b45f62262402f9f2
                                    [currency_code] => USD
                                    [currency_symbol] => $
                                )

                        )

                    [reviews] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [name] => Ken Weber
                                    [rating] => 5
                                    [title] => Torch Performance
                                    [review] => I didnt know  how good this torch was until I used it and its very nice for the money. The electronic ignition fires the butane evertime. Nice feel to it. Has a trigger lock down for extended usage time.  GOOD PRODUCT.
                                    [datetime] => 2015-12-29 11:27:34
                                )

                        )

                )

        )

)

Я пытаюсь получить доступ к массиву изображений и вывести его, а также информацию изсохраняет массив и отображает его.Я могу получить информацию из массива продуктов.но я не могу понять, как получить другие

Это то, что я пытаюсь достичь

Номер штрих-кода: 077341125112

Название продукта: Пользовательские аксессуарыБутановая горелка E-Tek 89960 Вт

Описание: Бутановая горелка 89960 Вт идеально подходит для домашнего гаража или автомобиля.Может использоваться для быстрого ремонта.

Показать изображение товара.

Магазины:

store_name: Wal-Mart.com USA, LLC store_price: 14.97 product_url: http://www.walmart.com/ip/Custom-Accessories-89960W-E-Tek-Butane-Torch/29029306

store_name: Jet.com store_price: 14.20 product_url: http://jet.com/product/detail/a43035df304c4551b45f62262402f9f2

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Шаг в сторону: я думаю, что самый простой способ сделать это - использовать

json_decode($json, true); 

Это делает все ассоциативным массивом.

Вот руководство для внутренней функции json_decode .

Шаг назад:

$response->products[0]->stores[0]->store_name
0 голосов
/ 05 июля 2019

Когда вы форматируете данные, это показывает, что данные хранилища находятся под каждым продуктом, поэтому вам нужно будет отобразить их как ...

$response->products[0]->stores[0]->store_name

Возможно, вам также понадобится использовать foreach() для отображения всех деталей, как продуктов, так и магазинов для каждого продукта.

foreach ( $response->products[0]->stores as $store )  {
    // Echo out the details
    echo $store->store_name;
}
...