多次元配列を単純なテーブルとして出力する方法を探しています。
ここで利用可能なxmlhttp://google.com/complete/search?output=toolbar&q=adam
を単純な関数で処理することで取得しました
function convertXmlObjToArr($obj) {
$json = json_encode($obj);
$array = json_decode($json,TRUE);
return $array;
}
配列を取得しました
array(1){ ["CompleteSuggestion"]=>
array(10) {
[0]=>
array(1) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(12) "adam sandler"
}
}
}
[1]=>
array(2) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(11) "adam levine"
}
}
["num_queries"]=>
array(1) {
["@attributes"]=>
array(1) {
["int"]=>
string(8) "33200000"
}
}
}
[2]=>
array(2) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(12) "adam carolla"
}
}
["num_queries"]=>
array(1) {
["@attributes"]=>
array(1) {
["int"]=>
string(7) "5570000"
}
}
}
[3]=>
array(2) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(12) "adam lambert"
}
}
["num_queries"]=>
array(1) {
["@attributes"]=>
array(1) {
["int"]=>
string(8) "45400000"
}
}
}
[4]=>
array(1) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(17) "adam sandler died"
}
}
}
[5]=>
array(2) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(19) "adam sandler movies"
}
}
["num_queries"]=>
array(1) {
["@attributes"]=>
array(1) {
["int"]=>
string(8) "43600000"
}
}
}
[6]=>
array(2) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(13) "adam morrison"
}
}
["num_queries"]=>
array(1) {
["@attributes"]=>
array(1) {
["int"]=>
string(8) "13800000"
}
}
}
[7]=>
array(2) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(10) "adams golf"
}
}
["num_queries"]=>
array(1) {
["@attributes"]=>
array(1) {
["int"]=>
string(8) "30500000"
}
}
}
[8]=>
array(2) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(10) "adam yauch"
}
}
["num_queries"]=>
array(1) {
["@attributes"]=>
array(1) {
["int"]=>
string(8) "19700000"
}
}
}
[9]=>
array(2) {
["suggestion"]=>
array(1) {
["@attributes"]=>
array(1) {
["data"]=>
string(9) "adam west"
}
}
["num_queries"]=>
array(1) {
["@attributes"]=>
array(1) {
["int"]=>
string(9) "137000000"
}
}
}
}
}
今、私はそれを出力して、2つの問題に直面したいと思います:
- このように構造化された配列の関連情報(「data」と「int」)を「掘り下げる」にはどうすればよいですか?これまでのところ、私ははるかに単純な配列を扱っていました(それほど「深く」はありません)。私はforeachループを介してそれをしようとしています
foreach($ googleKeywords-> CompleteSuggestion as $ Suggestion){
echo"{$this->suggestion->data}";
}
ただし、「非オブジェクトのプロパティを取得しようとしています」というエラーが発生し続けます。
- 一部のデータが完全ではないことに気付いたように、「data」には名前がありますが、対応する「int」にはありません...「int」が設定されていないかどうかにかかわらず、「nodata」をエコーする方法はありますか?
ではごきげんよう、
アダム