我有一些代碼從表中獲取一些行,我想在PHP中創建一個像[row_id] => row_title的關聯數組。這將被用來填充選擇列表。問題是,除非我在其中包含一個字符串,否則密鑰總是回到從0開始的有序數字。如果我用該密鑰添加一個字符串,那麼該密鑰保留我想要的ID。但顯然我不想在密鑰中輸入字符串。如何將整數指定爲關聯數組中的鍵?
這裏是我的代碼:
public static function select_array(){
$courses = ORM::factory('course')->order_by('title')->find_all();
$out = array();
foreach($courses as $c){
$out[$c->id] = $c->title;
}
return $out;
}
的$ C-> ID應該是從數據庫中的ID,但PHP與計數重寫此。如果我這樣做:
public static function select_array(){
$courses = ORM::factory('course')->order_by('title')->find_all();
$out = array();
foreach($courses as $c){
$test = "." . $c->id;
$out[$test] = $c->title;
}
return $out;
}
然後鍵將包括正確的ID,但與「。」在前面...我試過使用(字符串)$ c-> id但沒有運氣。我也嘗試將$ test設置爲「」。 $ c-> id然後修剪它,但那不起作用,無論如何這只是一個奇怪的冒險嘗試。
希望是有道理的。我的問題:如何簡單地將密鑰告訴特定號碼?
經過一些應用var_dumpage我找到了搞亂數組的罪魁禍首。 事實上,上述功能的工作原理應該如此;這些密鑰仍然來自數據庫的正常ID。但是在這個函數之後,我添加了這個: 'array_unshift($ courses,「Select course to add」);' 那時,所有的鍵都被重置爲一個有序的計數,從0開始爲未移位的元素。我猜想是有道理的,但相當有趣的是,只有當所有進入array_unshift的鍵都是整數時纔會發生! 感謝所有的快速反應,它幫助我繼續尋找答案! – Tapefreak
var_dump很棒! :) – zajd