我很難試圖瞭解爲什麼我無法比較兩個數組在PHP中的值。如果我在循環過程中使用「echo $ description-> ItemDesriptionName;」來回顯這兩者,和「echo $ 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