PHPで2つの配列の値を比較できない理由を理解しようとしています。ループ中に "echo $ description-> ItemDesriptionName;"を使用してこれらの両方をエコーした場合と "エコー$ item-> ItemName;"値は同じように見えるようですが、ifを使って比較しようとすると、何も動作しません。私は何が欠けていますか?ここでPHP配列の比較を使用する場合
<?php
$xml=simplexml_load_file("test.xml") or die("Error: Cannot create object");
$categories = $xml->Menu->Categories;
$items = $xml->Menu->Categories->Items->ItemObject;
$itemdescription = $xml->Menu->Options->Description->DescriptionObject;
foreach($items as $item) {
echo $item->ItemName . ' - ' . $item->Price . '</br>';
foreach ($itemdescription as $description) {
if ($description->ItemDescriptionName == $item->ItemName) {
echo 'We have a match!';
//where I would echo $description->ItemDescription;
}
}
}
?>
は、XMLファイルには、
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Menu>
<Categories>
<Name>Category 1</Name>
<Items>
<ItemObject>
<ItemName>Item 1</ItemName>
<Price>1</Price>
</ItemObject>
<ItemObject>
<ItemName>Item 2</ItemName>
<Price>3</Price>
</ItemObject>
</Items>
</Categories>
<Options>
<Description>
<DescriptionObject>
<ItemDescriptionName>Item 1</ItemDescriptionName>
<ItemDescription>A Great item</ItemDescription>
</DescriptionObject>
<DescriptionObject>
<ItemDescriptionName>Item 2</ItemDescriptionName>
<ItemDescription>A Great item as well</ItemDescription>
</DescriptionObject>
</Description>
</Options>
</Menu>
</Root>
ここにはタイプミスがあります。あなたのソースにもタイプミスがありますか? ItemDescriptionNameプロパティの説明に 'n'がありません – Graeme
ソースは表示されませんでしたが、それでも機能しません。ありがとう – Giovanni