1. 程式人生 > 其它 >7.陣列和正則

7.陣列和正則

1.陣列資料結構

1.1什麼是陣列

陣列的英文是array , 可以存入多個不同型別的資料,是一個複合資料型別。

1.2定義陣列

$a1 = array(1 , 1.5 , true ,'天王蓋地虎,小雞燉蘑菇')

在上例中,我們發現我們存入了:整型、浮點、布林、字串,可以通過var_dump()函式打印出來顯示

<?php
    
	$a1 = array(1 , 1.5 , true ,'天王蓋地虎,小雞燉蘑菇');
	var_dump($shu);

?>

//array(4) {
//    [0]=>
//  int(1)
//  [1]=>
//  float(1.5)
//  [2]=>
//  bool(true)
//  [3]=>
//  string(33) "天王蓋地虎,小雞燉蘑菇"
//}

1.3指定索引

陣列的預設索引是從0開始,依次加1直到最後一個元素,當然你也可以自定義索引,如果你從開頭自定義

則後面的元素的索引就從自定義的那個數字依次加1

<?php
    
	$a1 = array(2=>1 , 1.5 , true ,'天王蓋地虎,小雞燉蘑菇');
	var_dump($shu);

?>
//array(4) {
//    [2]=>
//  int(1)
//  [3]=>
//  float(1.5)
//  [4]=>
//  bool(true)
//  [5]=>
//  string(33) "天王蓋地虎,小雞燉蘑菇"
//}

當然你也可以把索引設定成字母

<?php
    
	$a1 = array("name"=>"ymn" ,"age"=>21);
	var_dump($a1);

?>
    
//array(2) {
//  ["name"]=>
//  string(3) "ymn"
//  ["age"]=>
//  int(21)
//}    

1.4常用運算元組函式

序號 函式資訊 說明
1 array_shift() 彈出陣列中的第一個元素
2 array_unshift() 在陣列的開始處壓入元素
3 array_push() 向陣列的末尾處壓入元素
4 array_pop() 彈出陣列末尾的最後一個元素
5 current() 讀出指標當前位置的值
6 key() 讀出指標當前位置的鍵
7 next() 指標向下移
8 prev() 向上移
9 reset() 指標到開始處
10 end() 指標到結束處

這些函式,也是面試中基礎面試中最愛問到的問題。

序號 函式資訊 說明
1 array_combine() 生成一個數組,用一個數組的值作為鍵名,另一個數組值作為值
2 range() 建立並返回一個包含指定範圍的元素的陣列。
3 compact() 建立一個由引數所帶變數組成的陣列
4 array_fill() 用給定的值生成陣列
5 array_chunk() 把一個數組分割為新的陣列塊
6 array_merge() 把兩個或多個數組合併為一個數組
7 array_slice() 在陣列中根據條件取出一段值,並返回
8 array_diff() 返回兩個陣列的差集陣列
9 array_search() 在陣列中搜索給定的值,如果成功則返回相應的鍵名
10 array_splice() 把陣列中的一部分去掉並用其它值取代
11 array_sum() 計算陣列中所有值的和
12 in_array() 檢查陣列中是否存在某個值
13 array_key_exists() 檢查給定的鍵名或索引是否存在於陣列中
14 shuffle() 將陣列打亂,保留鍵值
15 count() 計算陣列中的單元數目或物件中的屬性個數
16 array_flip() 返回一個鍵值反轉後的陣列
17 array_keys() 返回陣列所有的鍵,組成一個數組
18 array_values() 返回陣列中所有值,組成一個數組
19 array_reverse() 返回一個元素順序相反的陣列
20 array_count_values() 統計陣列中所有的值出現的次數
21 array_rand() 從陣列中隨機抽取一個或多個元素,注意是鍵名
22 array_unique() 刪除重複值,返回剩餘陣列
23 sort() 按升序對給定陣列的值排序,不保留鍵名
24 rsort() 對陣列逆向排序,不保留鍵名
25 asort() 對陣列排序,保持索引關係
26 arsort() 對陣列逆向排序,保持索引關係
27 ksort() 按鍵名對陣列排序
28 krsort() 將陣列按照鍵逆向排序
29 natsort() 用自然順序演算法對陣列中的元素排序
30 natcasesort() 自然排序,不區分大小寫
31 array_filter() 去掉陣列中的空元素或者預定元素
32 extract() 將鍵變為變數名,將值變為變數值

2.PHP中的正則表示式

正則表示式就是匹配字元的規則

正則表達是會在開發中經常看到,它主要用在以下一些地方:匹配郵箱、手機號碼、驗證碼、替換敏感的關鍵詞。

例如:涉及政治和罵人的話

PHP的正則表達示定界符的規定如下:定界符,不能用a-zA-Z0-9\ 其他的都可以用。必須成對出現,有開始就

有結束。

2.1定義方法

例子					   說明
/中間寫正則/				 正確   (常用這個)
$中間寫正則$				 正確
%中間寫正則%			     正確
^中間寫正則^			     正確
@中間寫正則@			     正確
(中間寫正則)				 錯誤  /\//
A中間寫正則A			     錯誤

2.2轉義字元

在php中\(反斜槓)是具有轉義的意思的,如果在\後面緊跟一個n那麼n就會被轉義成換行

如果你想取消轉義只需要在前面再加一個\即可

/\//     // 把/取消轉義,/原本是正則的結束,加上\就是普通的/(斜槓)了

2.3preg_match函式

<?php
	$zz = '/wq/';
	$string = 'ssssswqaaaaaa';
	if(preg_match($zz, $string, $matches)){  // 匹配的結果會賦值給$matches(陣列)
    	echo '匹配到了,結果為:'.$matches[0]."\n";
    	var_dump($matches);
	}else{
    	echo '沒有匹配到';
	}
?>

2.4常用的正則函式

序號 函式資訊 說明
1 preg_filter() 執行一個正則表示式搜尋和替換
2 preg_grep() 返回匹配模式的陣列條目
3 preg_match() 執行一個正則表示式匹配
4 preg_match_all() 執行一個全域性正則表示式匹配
5 preg_replace_callback_array() 傳入陣列,執行一個正則表示式搜尋和替換使用回撥
6 preg_replace_callback() 執行一個正則表示式搜尋並且使用一個回撥進行替換
7 preg_replace() 執行一個正則表示式的搜尋和替換
8 preg_split() 通過一個正則表示式分隔字串
$zz = '/wq/';
$string = 'asdwqfggwqaaaawqaa';
$res = preg_split($zz, $string); // 匹配的結果會賦值給$res(陣列)

var_dump($res);

//array(4) {
//  [0]=>
//  string(3) "asd"
//  [1]=>
//  string(3) "fgg"
//  [2]=>
//  string(4) "aaaa"
//  [3]=>
//  string(2) "aa"
//}