我使用simplexml來獲取xml結果頁並將其轉換爲數組。然後我使用foreach循環遍歷數組記錄。如果只發現一個結果,則PHP for each loop不起作用
問題是如果數組中只有一個foreach循環沒有發生的結果,則不顯示任何信息。
我必須檢測是否只有一行或超過一行,並根據要麼使用foreach循環或不。
想看看是否有一個更簡單的方法,所以我沒有這麼多的代碼,一切都適合在foreach循環。
下面是一個例子:
$result = $data->params->results;
$result_count = intval($data->params->totalcount);
if($result_count > 1)
{
foreach(results AS $curr_result)
{
$result_name = $curr_result->name;
}
}
else if($result_count == 1)
{
$result_name = $result->name;
}
編輯: 我增加了結果的變量,這是示例代碼,在我的事呢,我沒有去了的代碼,以確保它是正確的。如果只有一個結果數組是這樣的:
["fld1"]=>
string(6) "value1"
["fld2"]=>
string(6) "value2"
["fld3"]=>
string(6) "value3"
If there is more than one result it looks like this:
[0]=>
["fld1"]=>
string(6) "value1"
["fld2"]=>
string(6) "value2"
["fld3"]=>
string(6) "value3"
[1]=>
["fld1"]=>
string(6) "value1"
["fld2"]=>
string(6) "value2"
["fld3"]=>
string(6) "value3"
同樣只是一個簡單的例子,我敢肯定,心不是上面的代碼「正確的」每說,但它應該給足夠的信息來了解林談論。
*爲什麼*不起作用? – 2011-05-05 17:49:24
我不確定這裏的問題是什麼,但是當數組中只有一個元素時,我可以證明'foreach'正在工作 – sdleihssirhc 2011-05-05 17:50:46
不確定它是否是錯誤類型,但是您正在循環「結果'不是有效的變量名稱,應該是'$ results'。 – 2011-05-05 17:50:58