以下問題:我想構建一個基於mysql的語言系統。PHP從數組中獲取值的鍵值
爲了減少加載時間並提高性能,我認爲這將是最好的,首先將所有語言短語讀取到一個數組(這與mysqli獲取數組發生)。然後,如果需要語言術語,則將該數組調用爲全局變量。
我對陣列功能:
$sql = $db->query('SELECT * FROM lang_phrases WHERE phraseLanguageId = 1');
$phrases = array();
while($row = $sql->fetch_array()) {
$phrases[] = $row;
}
現在我有了這個數組:
array(2) {
[0]=> array(8) {
[0]=> string(1) "1"
["phraseId"]=> string(1) "1"
[1]=> string(1) "1"
["phraseLanguageId"]=> string(1) "1"
[2]=> string(4) "HOME"
["phraseKey"]=> string(4) "HOME"
[3]=> string(10) "Homepage"
["phraseContent"]=> string(10) "Homepage"
}
[1]=> array(8) {
[0]=> string(1) "2"
["phraseId"]=> string(1) "2"
[1]=> string(1) "1"
["phraseLanguageId"]=> string(1) "1"
[2]=> string(4) "BACK"
["phraseKey"]=> string(4) "BACK"
[3]=> string(6) "Back"
["phraseContent"]=> string(6) "Back"
}
}
而這就是我的功能:
我不知道,我怎麼能現在從函數中搜索數組中的「phraseKey」$ key並獲取值? 你有什麼提示嗎?或者,我應該簡單地選擇每個詞組與每個查詢(性能問題,每個負載100個查爾斯!)?
乾杯和謝謝!
只是作爲一個一邊尋找他們以檢索短語,這將可能有一個低得多的開銷做同樣的事情,如果你有足夠的控制權來使用你的服務器(可能需要一個專用服務器,因爲如果/當你改變PO文件時你需要軟重啓):http://php.net/manual/ en/book.gettext.php – CD001