PHPとXpathを使用して、ドキュメントをいくつかの異なる値で解析しています。Xpath クエリの結果/一致を配列に投げています。たとえば、次の$prices array
ようにビルドします。
$prices = array();
$result = $xpath->query("//div[@class='the-price']");
foreach ($result as $object) {
$prices[] = $object->nodeValue; }
配列を作成したら、次のようにループして値を HTML にスローします。
$i = 0;
foreach ($links as $link) {
echo <<<EOF
<div class="the-product">
<div class="the-name"><a title="{$names[$i]}" href="{$link}" target="blank">{$names[$i]}</a></div>
<br />
<div class="the-image"><a title="{$names[$i]}" href="{$link}" target="blank"><img src="{$images[$i]}" /></a></div>
<br />
<div class="the-current-price">Price is: <br> {$prices[$i]}</div>
</div>
EOF;
$i++; }
問題は、私が解析している元のドキュメントの一部のアイテムに価格<div class='the-price'>
がないことです. $prices array
。_ 最終的に20 個の製品と、 17個のキー/値のみを含む配列が返さNotice: Undefined offset
れ、いたるところでエラーが発生します。
私の質問は、キー値が欠落していて、配列を破棄しているアイテムをどのように説明できますか? これらの項目の配列にダミーの値を挿入できますか? 私は考えられる限り多くの異なる解決策を試しました。主に、foreach ループ内の IF ステートメントですが、何も機能していないようです。
ありがとうございました