2014-02-18 75 views
0

我已經提出了類似這樣的問題,但沒有人回答。我猜是因爲它太長,我不能完全陳述或向公衆講清楚。反正,反正成減少這樣將多維數組減少爲線性

陣列的陣列([0] =>數組([ID] =>名)[1] =>數組([ID] =>名))

上面的值來自於。

$query=$this->db 
      ->select('id,name') 
      ->from('employees') 
      ->get() 
      ->result_array(); 

上述結果的查詢,

陣列([0] =>數組([ID] => 1 [名稱] =>約翰))

由於我想獲取所有行而不覆蓋前面的行。我添加了這個算法。

foreach($query as $row) 
{ 
$employee_list[] = array($row['id']=>$row['name']);          
} 

現在的結果不會被覆蓋,所以如果我print_r($employee_list); 我要重申的,假設有2分排在我的員工表。

1-約翰,2-彼得

陣列([1] =>數組([1] =>約翰)[2] =>數組([2] =>彼得))

我現在的問題是,我如何減少上述結果數組爲一維/線性。由於ID存儲爲KEY,並且id列是INTEGER AUTO INCREMENT PRIMARY KEY,所以它沒有任何重複,這意味着對於插入的每一行,id都會遞增。

因此,如果我想要的陣列會很好。

陣列([1] =>約翰[2] =>彼得)

附加信息:我使用笨作爲我的框架,因此,如果有一個在CI庫中的任何定義的函數,它如果有人能告訴我是否有任何問題,將會有所幫助。

+0

'$ employee_list [$ row ['id']] = $ row ['name']'? – zerkms

+0

謝謝!測試,結果是一維數組。我剛剛意識到爲什麼我的結果如此。 :)如果你能寫出你的答案作爲答案,我會盡快接受。 – user3205047

+0

只要放棄它,這個問題太微不足道了(對社區來說,這個問題沒有用)就把它留在這裏。 – zerkms

回答

0

在過去,您可以使用mysql_result,它將一列選擇爲單維數組。

但是,如果您願意使用PDO,則自PHP 5.5.0開始不推薦使用,並且參考建議使用mysqli_fetch_field(強制您從響應中選擇響應,如zerkms在評論中所示)或PDOStatement::fetchColumn