1.$arr = [['age'=>1,'name'=>'a'],['age'=>3,'name'=>'c'],['age'=>2,'name'=>b'']],將陣列$arr按照age的值 從小到大排列。
考察多維陣列按照其中乙個字段值排序,使用array_multisort()函式
array_mutisort()函式的語法和用法,w3school.com.cn上解釋如下:
array_multisort() 函式返回排序陣列。您可以輸入乙個或多個陣列。函式先對第乙個陣列進行排序,接著是其他陣列,如果兩個或多個值相同,它將對下乙個陣列進行排序。
注釋:字串鍵名將被保留,但是數字鍵名將被重新索引,從 0 開始,並以 1 遞增。
注釋:您可以在每個陣列後設定排序順序和排序型別引數。如果沒有設定,每個陣列引數會使用預設值。
array_multisort(array1,sorting order,sorting type,array2,array3...)
引數
描述array1
必需。規定陣列。
sorting order
可選。規定排列順序。可能的值:
sorting type
可選。規定排序型別。可能的值:
array2
可選。規定陣列。
array3
可選。規定陣列。
具體**如下:
$arr = [['age'=>1,'name'=>'a'],['age'=>3,'name'=>'c'],['age'=>2,'name'=>'b']];
$age = array();
foreach($arr as $key=>$value)
array_multisort($age,sort_asc,$arr);
//以age欄位作為基準 排序,
//同理如果是別的欄位就把$age 變成別的字段陣列;
//如果以基準的字段正好在最前面,可以直接使用array_mutisort($arr,sort_asc)
2.怎麼優化資料庫sql語句?1)優化select語句
2)優化insert插入語句
3)優化update和delete語句
最好也是批量修改刪除,就是分條件分批去做修改和刪除,不要一條一條修改和刪除,視情況而定。
3.索引有幾種種類?什麼情況下索引會不起作用?索引的缺點是什麼?
索引種類:
索引型別:
1)fulltext
即為全文索引,目前只有myisam引擎支援。其可以在create table ,alter table ,create index 使用,不過目前只有 char、varchar ,text 列上可以建立全文索引。
全文索引並不是和myisam一起誕生的,它的出現是為了解決where name like 「%word%"這類針對文字的模糊查詢效率較低的問題。
2)hash
由於hash的唯一(幾乎100%的唯一)及類似鍵值對的形式,很適合作為索引。
hash索引可以一次定位,不需要像樹形索引那樣逐層查詢,因此具有極高的效率。但是,這種高效是有條件的,即只在「=」和「in」條件下高效,對於範圍查詢、排序及組合索引仍然效率不高。
3) btree
btree索引就是一種將索引值按一定的演算法,存入乙個樹形的資料結構中(二叉樹),每次查詢都是從樹的入口root開始,依次遍歷node,獲取leaf。這是mysql裡預設和最常用的索引型別。
4) rtree
rtree在mysql很少使用,僅支援geometry資料型別,支援該型別的儲存引擎只有myisam、bdb、innodb、ndb、archive幾種。
什麼時候不起作用:
當sql語句 使用like關鍵字前面出現%的時候 索引效率會比較低,直接『關鍵字』 或者『關鍵字%』是可以的。
索引的缺點:
第一, 建立索引和維護索引要耗費時間,這種時間隨著資料量的增加而增加。
第二, 索引需要佔物理空間,除了資料表佔資料空間之外,每乙個索引還要佔一定的物理空間,如果要建立聚簇索引,那麼需要的空間就會更大。
第三, 當對表中的資料進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度。
4.php設計模式。
常用的五種設計模式:策略模式、工廠模式、觀察者模式、註冊模式、介面卡模式
php基礎,面試整理
1 php引用變數的概念和定義方式 概念 在php中引用用不同的變數名稱訪問同乙個變數內容 定義方式 使用 延伸 php的cow機制,copy on write 當將a變數賦值給b變數的時候,並不會給b變數開闢記憶體空間,只有當b變數進行修改之後才會給b變數開闢記憶體空間 使用xdebug debu...
php面試相關整理
1 http keep alive的作用 作用 keep alive 使客戶端到伺服器端的連線持續有效,當出現對伺服器的後繼請求時,keep alive功能避免了建立或者重新建立連線。web伺服器,基本上都支援http keep alive。接有一定的好處,但它同樣影響了效能,因為在處理暫停期間,本...
PHP面試題整理
關於empty和isset的介紹,可以看這篇部落格 bool empty mixed var 判斷乙個變數是否被認為是空的。當乙個變數並不存在,或者它的值等同於false,那麼它會被認為不存在。如果變數不存在的話,empty 並不會產生警告。var dump empty 0 bool true va...