サイト作成の勉強中です。
元となる配列があります。
array(2) { ["pages"]=> array(1) { [0]=> array(3) { ["width"]=> int(4032) ["height"]=> int(3024) ["blocks"]=> array(3) { [0]=> array(3) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1874) ["y"]=> int(2389) } [1]=> array(2) { ["x"]=> int(1844) ["y"]=> int(2032) } [2]=> array(2) { ["x"]=> int(2043) ["y"]=> int(2015) } [3]=> array(2) { ["x"]=> int(2073) ["y"]=> int(2372) } } } ["paragraphs"]=> array(1) { [0]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1874) ["y"]=> int(2389) } [1]=> array(2) { ["x"]=> int(1844) ["y"]=> int(2032) } [2]=> array(2) { ["x"]=> int(2043) ["y"]=> int(2015) } [3]=> array(2) { ["x"]=> int(2073) ["y"]=> int(2372) } } } ["words"]=> array(2) { [0]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1874) ["y"]=> int(2389) } [1]=> array(2) { ["x"]=> int(1860) ["y"]=> int(2227) } [2]=> array(2) { ["x"]=> int(2059) ["y"]=> int(2210) } [3]=> array(2) { ["x"]=> int(2073) ["y"]=> int(2372) } } } ["symbols"]=> array(1) { [0]=> array(3) { ["property"]=> array(1) { ["detectedBreak"]=> array(1) { ["type"]=> string(5) "SPACE" } } ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1874) ["y"]=> int(2389) } [1]=> array(2) { ["x"]=> int(1860) ["y"]=> int(2227) } [2]=> array(2) { ["x"]=> int(2059) ["y"]=> int(2210) } [3]=> array(2) { ["x"]=> int(2073) ["y"]=> int(2372) } } } ["text"]=> string(1) "A" } } } [1]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1856) ["y"]=> int(2181) } [1]=> array(2) { ["x"]=> int(1843) ["y"]=> int(2033) } [2]=> array(2) { ["x"]=> int(2043) ["y"]=> int(2016) } [3]=> array(2) { ["x"]=> int(2055) ["y"]=> int(2164) } } } ["symbols"]=> array(1) { [0]=> array(3) { ["property"]=> array(1) { ["detectedBreak"]=> array(1) { ["type"]=> string(10) "LINE_BREAK" } } ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1856) ["y"]=> int(2181) } [1]=> array(2) { ["x"]=> int(1843) ["y"]=> int(2033) } [2]=> array(2) { ["x"]=> int(2043) ["y"]=> int(2016) } [3]=> array(2) { ["x"]=> int(2055) ["y"]=> int(2164) } } } ["text"]=> string(1) "1" } } } } } } ["blockType"]=> string(4) "TEXT" } [1]=> array(3) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2267) ["y"]=> int(2427) } [1]=> array(2) { ["x"]=> int(2250) ["y"]=> int(2075) } [2]=> array(2) { ["x"]=> int(2452) ["y"]=> int(2065) } [3]=> array(2) { ["x"]=> int(2470) ["y"]=> int(2417) } } } ["paragraphs"]=> array(1) { [0]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2267) ["y"]=> int(2427) } [1]=> array(2) { ["x"]=> int(2250) ["y"]=> int(2075) } [2]=> array(2) { ["x"]=> int(2452) ["y"]=> int(2065) } [3]=> array(2) { ["x"]=> int(2470) ["y"]=> int(2417) } } } ["words"]=> array(2) { [0]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2267) ["y"]=> int(2427) } [1]=> array(2) { ["x"]=> int(2260) ["y"]=> int(2278) } [2]=> array(2) { ["x"]=> int(2462) ["y"]=> int(2268) } [3]=> array(2) { ["x"]=> int(2470) ["y"]=> int(2417) } } } ["symbols"]=> array(1) { [0]=> array(3) { ["property"]=> array(1) { ["detectedBreak"]=> array(1) { ["type"]=> string(5) "SPACE" } } ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2267) ["y"]=> int(2427) } [1]=> array(2) { ["x"]=> int(2260) ["y"]=> int(2278) } [2]=> array(2) { ["x"]=> int(2462) ["y"]=> int(2268) } [3]=> array(2) { ["x"]=> int(2470) ["y"]=> int(2417) } } } ["text"]=> string(1) "B" } } } [1]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2256) ["y"]=> int(2211) } [1]=> array(2) { ["x"]=> int(2249) ["y"]=> int(2075) } [2]=> array(2) { ["x"]=> int(2452) ["y"]=> int(2065) } [3]=> array(2) { ["x"]=> int(2459) ["y"]=> int(2201) } } } ["symbols"]=> array(1) { [0]=> array(3) { ["property"]=> array(1) { ["detectedBreak"]=> array(1) { ["type"]=> string(10) "LINE_BREAK" } } ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2256) ["y"]=> int(2211) } [1]=> array(2) { ["x"]=> int(2249) ["y"]=> int(2075) } [2]=> array(2) { ["x"]=> int(2452) ["y"]=> int(2065) } [3]=> array(2) { ["x"]=> int(2459) ["y"]=> int(2201) } } } ["text"]=> string(1) "1" } } } } } } ["blockType"]=> string(4) "TEXT" } [2]=> array(3) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1862) ["y"]=> int(1160) } [1]=> array(2) { ["x"]=> int(1855) ["y"]=> int(699) } [2]=> array(2) { ["x"]=> int(2437) ["y"]=> int(690) } [3]=> array(2) { ["x"]=> int(2444) ["y"]=> int(1151) } } } ["paragraphs"]=> array(2) { [0]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1865) ["y"]=> int(1149) } [1]=> array(2) { ["x"]=> int(1856) ["y"]=> int(742) } [2]=> array(2) { ["x"]=> int(2048) ["y"]=> int(738) } [3]=> array(2) { ["x"]=> int(2057) ["y"]=> int(1145) } } } ["words"]=> array(2) { [0]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1865) ["y"]=> int(1149) } [1]=> array(2) { ["x"]=> int(1861) ["y"]=> int(964) } [2]=> array(2) { ["x"]=> int(2053) ["y"]=> int(960) } [3]=> array(2) { ["x"]=> int(2057) ["y"]=> int(1145) } } } ["symbols"]=> array(1) { [0]=> array(3) { ["property"]=> array(1) { ["detectedBreak"]=> array(1) { ["type"]=> string(5) "SPACE" } } ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1865) ["y"]=> int(1149) } [1]=> array(2) { ["x"]=> int(1861) ["y"]=> int(964) } [2]=> array(2) { ["x"]=> int(2053) ["y"]=> int(960) } [3]=> array(2) { ["x"]=> int(2057) ["y"]=> int(1145) } } } ["text"]=> string(1) "A" } } } [1]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1860) ["y"]=> int(934) } [1]=> array(2) { ["x"]=> int(1856) ["y"]=> int(742) } [2]=> array(2) { ["x"]=> int(2048) ["y"]=> int(738) } [3]=> array(2) { ["x"]=> int(2052) ["y"]=> int(930) } } } ["symbols"]=> array(1) { [0]=> array(3) { ["property"]=> array(1) { ["detectedBreak"]=> array(1) { ["type"]=> string(10) "LINE_BREAK" } } ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1860) ["y"]=> int(934) } [1]=> array(2) { ["x"]=> int(1856) ["y"]=> int(742) } [2]=> array(2) { ["x"]=> int(2048) ["y"]=> int(738) } [3]=> array(2) { ["x"]=> int(2052) ["y"]=> int(930) } } } ["text"]=> string(1) "2" } } } } } [1]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2216) ["y"]=> int(1154) } [1]=> array(2) { ["x"]=> int(2212) ["y"]=> int(694) } [2]=> array(2) { ["x"]=> int(2437) ["y"]=> int(692) } [3]=> array(2) { ["x"]=> int(2441) ["y"]=> int(1152) } } } ["words"]=> array(1) { [0]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2216) ["y"]=> int(1154) } [1]=> array(2) { ["x"]=> int(2212) ["y"]=> int(694) } [2]=> array(2) { ["x"]=> int(2437) ["y"]=> int(692) } [3]=> array(2) { ["x"]=> int(2441) ["y"]=> int(1152) } } } ["symbols"]=> array(2) { [0]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2217) ["y"]=> int(1154) } [1]=> array(2) { ["x"]=> int(2215) ["y"]=> int(981) } [2]=> array(2) { ["x"]=> int(2439) ["y"]=> int(979) } [3]=> array(2) { ["x"]=> int(2441) ["y"]=> int(1152) } } } ["text"]=> string(1) "B" } [1]=> array(3) { ["property"]=> array(1) { ["detectedBreak"]=> array(1) { ["type"]=> string(10) "LINE_BREAK" } } ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(2214) ["y"]=> int(921) } [1]=> array(2) { ["x"]=> int(2212) ["y"]=> int(694) } [2]=> array(2) { ["x"]=> int(2436) ["y"]=> int(692) } [3]=> array(2) { ["x"]=> int(2438) ["y"]=> int(919) } } } ["text"]=> string(1) "2" } } } } } } ["blockType"]=> string(4) "TEXT" } } } } ["text"]=> string(14) "A 1 B 1 A 2 B2" }
この配列をpage、block、paragraph、word、symbolという風に順に読み込んんで、
symbolが保持する、情報(x y, text)を取り出して、x, y の順序でtextを整形したいです。
具体的には、以下の記事をPHPで書き換えたいです。
https://qiita.com/shoku-pan/items/bf5645894803769edc72
自分なりにやってみたんですが・・・
$text = $array_json["responses"]["0"]["fullTextAnnotation"]; $bound = array(); foreach ($text as $pages){ foreach ($pages as $blocks) { foreach ($blocks as $paragraphs) { foreach ($paragraphs as $words) { foreach ($words as $symbols) { foreach ($symbols as $symbol) { array_push($bound, $symbol); } } } } } } var_dump($bound);
$symbolと関係の無い情報も入っているように見えます。
array(7) { [0]=> array(4) { [0]=> array(2) { ["x"]=> int(1874) ["y"]=> int(2389) } [1]=> array(2) { ["x"]=> int(1844) ["y"]=> int(2032) } [2]=> array(2) { ["x"]=> int(2043) ["y"]=> int(2015) } [3]=> array(2) { ["x"]=> int(2073) ["y"]=> int(2372) } } [1]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1874) ["y"]=> int(2389) } [1]=> array(2) { ["x"]=> int(1844) ["y"]=> int(2032) } [2]=> array(2) { ["x"]=> int(2043) ["y"]=> int(2015) } [3]=> array(2) { ["x"]=> int(2073) ["y"]=> int(2372) } } } ["words"]=> array(2) { [0]=> array(2) { ["boundingBox"]=> array(1) { ["vertices"]=> array(4) { [0]=> array(2) { ["x"]=> int(1874) ["y"]=> int(2389) } [1]=> array(2) { ["x"]=> int(1860) ["y"]=> int(2227) } [2]=> array(2) ※最初の一部
上記記事の
x = symbol.bounding_box.vertices[0].x
y = symbol.bounding_box.vertices[0].y
text = symbol.text
bounds.append([x, y, text, symbol.bounding_box])
PHPの$boudには、このフォーマットでないデータも含まれているためです。
多分、foreachの回し方が間違っていると思うのですが、とっかかりもなく困っています。
アドバイスのほどよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。