7.陣列和正則
阿新 • • 發佈:2021-12-23
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"
//}