php面試整理20190102

2021-09-06 15:27:17 字數 2299 閱讀 7637

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...