phpのLaravelです。
下のコードのようにfor構文を使って連想配列にデータを追加したいのですが、どうやっても下の配列のようになってしまいます。本当は”Item”の配列に追加したいのですが、どうしたらいいのでしょうか?
修正内容:一番下の連想配列は楽天の[楽天ブックス書籍検索API]を下の$rakutenn_url~$rakutenn_booksのコードで連想配列にしたもの(三つ目)に、真ん中のfor文でデータを追加したものをdd()で確認したものとなっています。
ここで、質問の「”Item”の配列に追加したい」というのは三つ目の連想配列のように[title]や[author]などが表示されている、["Item"]下の配列にデータを追加したいという事です。
追記:べつのAPIのデータと一緒に同じテーブルにデータを保存するために、書式を統一するのが目的でこんなことをしています。
//楽天ブックス書籍検索 $rakutenn_url = 'https://app.rakuten.co.jp/services/api/BooksBook/Search/20170404?applicationId=アプリid'; $rakutenn_response = $client->request( 'GET', $rakutenn_url, ); $rakutenn_json = $rakutenn_response->getBody()->getContents(); $rakutenn_booklist= json_decode($rakutenn_json,true); $rakutenn_books = $rakutenn_booklist['Items'];
for($i=0;$i<count($rakutenn_books);$i++) { //$rakutenn_books[$i] += ["guid" => null]; //$rakutenn_books[$i] += ["link" => null]; //$rakutenn_books[$i] += ["category" => null]; array_push($bookbook,$rakutenn_books[$i]); }
array:30 [▼ 0 => array:1 [▼ "Item" => array:30 [▼ "affiliateUrl" => "" "author" => "あしべゆうほ/池田悦子" "authorKana" => "アシベユウホ/イケダエツコ" "availability" => "1" "booksGenreId" => "001001006010" "chirayomiUrl" => "" "contents" => "" "discountPrice" => 0 "discountRate" => 0 "isbn" => "9784253070263" "itemCaption" => "" "itemPrice" => 880 "itemUrl" => "https://books.rakuten.co.jp/rb/896646/" "largeImageUrl" => "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0263/9784253070263_1_3.jpg?_ex=200x200" "limitedFlag" => 0 "listPrice" => 0 "mediumImageUrl" => "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0263/9784253070263_1_3.jpg?_ex=120x120" "postageFlag" => 2 "publisherName" => "秋田書店" "reviewAverage" => "4.5" "reviewCount" => 6 "salesDate" => "1990年11月02日" "seriesName" => "プリンセス・コミックス" "seriesNameKana" => "プリンセスコミックス" "size" => "コミック" "smallImageUrl" => "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0263/9784253070263_1_3.jpg?_ex=64x64" "subTitle" => "" "subTitleKana" => "" "title" => "悪魔の花嫁 17" "titleKana" => "デイモスノハナヨメ" ] ] 1 => array:1 [▶] 2 => array:1 [▶] 3 => array:1 [▶] 4 => array:1 [▶] 5 => array:1 [▶] 6 => array:1 [▶] 7 => array:1 [▶] 8 => array:1 [▶] 9 => array:1 [▶] 10 => array:1 [▶] 11 => array:1 [▶] 12 => array:1 [▶] 13 => array:1 [▶] 14 => array:1 [▶] 15 => array:1 [▶] 16 => array:1 [▶] 17 => array:1 [▶] 18 => array:1 [▶] 19 => array:1 [▶] 20 => array:1 [▶] 21 => array:1 [▶] 22 => array:1 [▶] 23 => array:1 [▶] 24 => array:1 [▶] 25 => array:1 [▶] 26 => array:1 [▶] 27 => array:1 [▶] 28 => array:1 [▶] 29 => array:1 [▶] ]
array:30 [▼ 0 => array:4 [▼ "Item" => array:30 [▶] "guid" => null "link" => null "category" => null ] 1 => array:4 [▶] 2 => array:4 [▶] 3 => array:4 [▶] 4 => array:4 [▶] 5 => array:4 [▶] 6 => array:4 [▶] 7 => array:4 [▶] 8 => array:4 [▶] 9 => array:4 [▶] 10 => array:4 [▶] 11 => array:4 [▶] 12 => array:4 [▶] 13 => array:4 [▶] 14 => array:4 [▶] 15 => array:4 [▶] 16 => array:4 [▶] 17 => array:4 [▶] 18 => array:4 [▶] 19 => array:4 [▶] 20 => array:4 [▶] 21 => array:4 [▶] 22 => array:4 [▶] 23 => array:4 [▶] 24 => array:4 [▶] 25 => array:4 [▶] 26 => array:4 [▶] 27 => array:4 [▶] 28 => array:4 [▶] 29 => array:4 [▶] ]
追記:解決しました。下に欲しかった結果と何をしたかを載せます。
結果:
array:30 [▼ 0 => array:33 [▼ "affiliateUrl" => "" "author" => "" "authorKana" => "" "availability" => "1" "booksGenreId" => "001010010002/001028001013/001028001" "chirayomiUrl" => "" "contents" => "" "discountPrice" => 0 "discountRate" => 0 "isbn" => "9784299019943" "itemCaption" => "" "itemPrice" => 1100 "itemUrl" => "https://books.rakuten.co.jp/rb/16796583/" "largeImageUrl" => "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9943/9784299019943_1_3.jpg?_ex=200x200" "limitedFlag" => 0 "listPrice" => 0 "mediumImageUrl" => "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9943/9784299019943_1_3.jpg?_ex=120x120" "postageFlag" => 2 "publisherName" => "宝島社" "reviewAverage" => "3.0" "reviewCount" => 1 "salesDate" => "2021年08月23日" "seriesName" => "TJMOOK" "seriesNameKana" => "ティージェイムック" "size" => "ムックその他" "smallImageUrl" => "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9943/9784299019943_1_3.jpg?_ex=64x64" "subTitle" => "" "subTitleKana" => "" "title" => "ヒトは120歳まで生きられる! 遺伝子のヒミツ" "titleKana" => "ヒトハヒャクニジュッサイマデイキラレルイデンシノヒミツ" "guid" => null "link" => null "category" => null ] 1 => array:33 [▶] 2 => array:33 [▶] 3 => array:33 [▶] 4 => array:33 [▶] 5 => array:33 [▶] 6 => array:33 [▶] 7 => array:33 [▶] 8 => array:33 [▶] 9 => array:33 [▶] 10 => array:33 [▶] 11 => array:33 [▶] 12 => array:33 [▶] 13 => array:33 [▶] 14 => array:33 [▶] 15 => array:33 [▶] 16 => array:33 [▶] 17 => array:33 [▶] 18 => array:33 [▶] 19 => array:33 [▶] 20 => array:33 [▶] 21 => array:33 [▶] 22 => array:33 [▶] 23 => array:33 [▶] 24 => array:33 [▶] 25 => array:33 [▶] 26 => array:33 [▶] 27 => array:33 [▶] 28 => array:33 [▶] 29 => array:33 [▶] ]
上のと比べるとわかりやすいですが、
"guid" => null
"link" => null
"category" => null
のデータが追加される位置をこういう風に変更したかったという事です。
解決方法:for文を下のように書き換えると事で解決しました。
for($i=0;$i<count($rakutenn_books);$i++) { $rakutenn_books[$i]['Item'] += ["guid" => null]; $rakutenn_books[$i]['Item'] += ["link" => null]; $rakutenn_books[$i]['Item'] += ["category" => null]; array_push($bookbook,$rakutenn_books[$i]['Item']); }
変更点は[$i]の隣に['Item']を追加したことです。
分かりにくい質問文ですみませんでした。
回答1件
あなたの回答
tips
プレビュー