在xampp開發環境中使用PHP 5.4.7。陣列以奇怪的順序輸出元素
我有一個函數在我的數據層文件中,從MySql表中獲取數據,然後創建一個2維數組,以便日後可以訪問這些內容。當我使用print_r打印出這個數據層文件本身的元素時,它們以索引的正確順序打印,即0,1,2,3,4,5。但是當我在別處調用此函數並打印元素時,它們以5,0,1,2,3,4的順序出來。
切換肯定發生在創建函數和使用它的時間之間。我搜遍了所有,但沒有發現任何這樣的論壇上提到的。
這是函數:
function getAllActivitiesAtEvent($eventId)
{
$query = ("SELECT * FROM activity WHERE '$eventId' = activity.event_id");
$result = @mysql_query ($query) or die (mysql_error());
$num = mysql_num_rows ($result);
if ($num != 0)
{
$allActs[$num-1] = array();
$i = 0;
while ($row = mysql_fetch_array ($result))
{
$oneAct = [
"index" => $i,
"actId" => $row ['activity_id'],
"actName" => $row ['activity_name'],
"actSC" => $row ['activity_short_code'],
"actPL" => $row ['project_leader'],
"actCap" => $row ['capacity'],
"actDOW" => $row ['day_of_week'],
"actDate" => $row ['date']
];
$allActs[$i] = $oneAct;
$i++;
}$i = 1;
}
return $allActs;
}
...當我此頁面上的print_r,順序是正確的。
當我調用此函數另一個頁面上,像這樣:
dbconnect();
$activityArr = getAllActivitiesAtEvent($eventId);
,然後打印出的元素,順序是錯的!
是的,顯示你的代碼,很難猜測。 – 2013-04-29 20:09:21
什麼問題? PHP會按照它們分配的順序輸出元素。如果索引5在2之前分配,則5將在print_r中的2之前顯示。 如果你想讓它們按照數字順序排列,可以考慮使用[ksort](http://us1.php.net/ksort)。 – 2013-04-29 20:12:47
對不起,但我似乎無法弄清楚如何縮進我的代碼,使其看起來像代碼! – swissphp 2013-04-29 20:27:56