php7 数组与字符串,第7天 PHP字符串、数组
11. 字符串詳解
11.1. 4種不同形式的字符串
11.1.1. 單引號字符串
形式: $s1 = ‘字符串內容’
特點:
只能使用2個轉義符: \n \t ‘ “ \(代表一個反斜杠) \’(代表一個單引號)
通常,如果沒有其他特殊需求(比如字符串中使用一些轉義符,以及一些變量),則推薦使用單引號字符串。!不能解析變量
11.1.2. 雙引號字符串
形式: $s1 = “字符串內容”
特點:
1,能使用較為豐富的轉義符,包括:\\ \” \n \r \t \$等
\n :代表“換行符”(就是一個新行)
\r :代表“回車符”(其實也是一個新行)
\t :代表“tab符”,
$v1 = 10;
echo “結果為:$v1”; //輸出內容為: 結果為:10
echo “結果為:\$v1”; //輸出內容為: 結果為:$v1
image.png
1、單引號不能解析變量,雙引號能夠解析變量(變量不要加引號解析)
2、使用{}代替字符串和變量連接
image.png
1.1.3. heredoc字符串
形式:$s1 = <<
這里寫字符內容,可以多行寫
標識符;
特點:
1,特點跟雙引號字符串一樣!
注意:
標識符結束那一行,只能出現標識符及緊挨著的分號,任何其他字符都不可以出現。
image.png
11.1.4. nowdoc字符串
形式:$s1 = <<
這里寫字符內容,可以多行寫
標識符;
特點:無特點,是最“純凈”的字符串,寫什么就是什么。
heredoc字符串,和nowdoc字符串,適用于表達(描述)一大段內容的字符串,特別是適合于寫html部分的代碼(含js,css等)。
如下:
image.png
11.2. 字符串的長度問題
字符串的長度問題,有兩個方面的理解:
1,一個字符串有幾個字符(人可見到的字符個數);
2,一個字符串占據多少個字節空間(人不可見);
幾個常識:
a,1字節(B)就是8個bit位(最小的存儲空間),1KB=1024B,1MB=1024KB,1GB=1024MB。。
b,一個英文字符占據1字節空間,gbk編碼中1個漢字占據2個字節,utf8編碼1個漢字占3字節。
求php字符串的長度,,有兩個函數:
strlen(字符串):
求該字符串的“字節數”,也就是占據的字節空間大小;
mb_strlen(字符串):
求該字符串的“字符個數”。
image.png
該模塊準確的位置如下:
image.png
使用phpinfo()函數沒有找到php_mbstring這個函數,原因是PHP配置文件沒有找到動態擴展庫的位置
image.png
更改配置文件中加載擴展庫的位置:
image.png
查看:
image.png
image.png
11.3. 常用字符串函數(重點)
·字符串輸出:
echo: 輸出一個或多個字符(不是函數,是語言結構)
print:輸出一個字符串
print_r:輸出變量的較為詳細的信息
var_dump:輸出變量的完整信息
·字符串去除與填充:
trim:消除一個字符串兩端的空白字符或指定字符(空白字符包括:空格,\n, \r, \t等)
ltrim:消除一個字符串左邊的空白字符或指定字符
rtrim:消除一個字符串右邊的空白字符或指定字符
str_pad:將一個字符串使用指定的字符填充到指定的長度
image.png
·字符串連接與分割:
implode:將一個數組的值連接起來組成一個字符串
join:同implode
explode: 將一個字符串使用指定的字符分割為一個數組
str_split:將一個字符串按指定的長度分割為一個數組
image.png
·字符串截取:
字符串的位置、下標是從0開始的
substr:獲取一個字符串中指定位置開始指定長度的子字符串
strstr:獲取一個字符串中某個指定字符首次出現的位置起,到最后結尾處的字符 strstr(‘abcd.12.3.txt’, ‘.’); //結果是:”.12.3.txt”
strrchr:獲取一個字符串中某個指定字符最后一次出現的位置起,到最后結尾處的字符 strrchr(‘abcd.12.3.txt’, ‘.’); //結果是:”.txt”
image.png
·字符串替換:
str_replace:將一個字符串中的指定字符,替換為給定的新字符。
image.png
image.png
substr_replace:將一個字符串中指定位置開始的指定個數的字符,替換為給定的新字符。
image.png
str_repeat: 重復輸出某個字符串
image.png
image.png
·字符串位置:
strpos:獲取一個字符串中某個子字符串首次出現的位置。 strpos(‘abcd.12.3.txt’, ‘.’); //結果是:4
strrpos:獲取一個字符串中某個子字符串最后一次出現的位置。
strrpos(‘abcd.12.3.txt’, ‘.’); //結果是:9
strrpos(‘abcd.12.3.txt’, ‘cd’); //結果是:2
image.png
·字符轉換:
strtolower:將一個字符串轉換為小寫。
strtoupper:將一個字符串轉換為大寫。
lcfirst:將一個字符串的首字母轉換為小寫。
ucfirst:將一個字符串的首字母轉換為大寫。
ucwords:將一個字符串中的所有單詞的首字母轉換大寫。
·特殊字符處理:
nl2br:將換行符轉換為”
”標簽字符
addslashes: 將一個字符串中的以下幾個字符使用反斜杠進行轉義:\ ‘ “
htmlspecialchars:將html中的特殊字符轉換為html實體字符,如下所示:
(& ‘ “ < > )分別轉換為:((& ' " < > )
htmlspecialchars_decode:將html實體字符,轉換回原本的字符。
image.png
案例:
取出如下若干個文件中的圖片文件。
$files = [‘abc.gif’, ‘123.txt’, ‘dir1/gift.PNG’, ‘file1.JPG’, ‘gif動畫制作教程.doc’ ];
image.png
12. 數組詳解
12.1. 數組的概念和定義
數組,是指將若干數據按一定的順序組合為一個整體。
每個數據被稱為一個“單元”——數組單元。
每個單元由兩部分構成:下標和值,下標也稱為“鍵”(key),
數組的一個重要特點是:其中的數據有明確的順序,而且,是其放入數組時的先后順序。
數組有如下幾種定義形式:
形式1:
$arr1 = array(單元1,單元2,...);
形式2:推薦
$arr2 = [單元1,單元2,...];
單元(元素)的形式為: [下標=>]值
形式3:(不推薦)
$arr3[下標1] = 值1;
$arr3[下標2] = 值2;
image.png
數據取值的語法形式:
$數組名[下標]; //其中,下標可以是整數的,也可以是字符串的(注意有引號)
image.png
訪問所有元素的值
image.png
12.2.數組的分類
按照下標進行分類:
索引數組:下標都是整數的為索引數組(下標可以不寫,默認是從0開始的,依次遞增)
關聯數組:下標都是字符串(字符串得加引號)
復合數組:下標既有整數,又有字符串(整數可以不寫,字符串必須加引號,整數默認從0開始)
按照維數進行分類:
一維數組:數組里面的元素都是單個元素
二維數組:數組里面的元素的值又是一個一維數組
多維數組:數組里面又是數組,數組又是數組
注意:
//print_r()第二參數不加,默認為false,直接輸出,如果加上true,直接把這個值保存起來不輸出,轉換成字符串
arr1,true);
echo $str;
12.21. 索引數組
通常是指一個數組的下標是從0開始的連續的整數。
舉例1:
$arr1 = array(5, 8, 12, 2, 3);
$arr2 = [8, 22, 24, 22, 12];
$arr3[ ] = 8;
$arr3[ ] = 24;
$arr3[ ] = 22;
image.png
12.2.2. 關聯數組
通常是指一個數組的下標都是字符串。
image.png
12.2.3. ** 混合數組**
下標既有字符串,也有整數
image.png
12.3. PHP數組的維數
按通常的數組元素的復雜程度,數組可以分為一維數組,二維數組,三維數組等等。
數組的元素的值可以重復,但是下標不能重復(下標具有唯一性), 如果重新給下標賦值,會覆蓋掉原有的值
一維數組:
數組的每一個單元的值都是一個“非數組”值。
$arr1 = array(11, 12, 13, 14);
二維數組:
數組的每個單元的值都是一個“一維數組”。
$arr2 = array(
array(11, 12, 13),
array(21, 22, 23),
.....
);
三維數組:
數組的每個單元的值都是一個“二維數組”。
多維數組:
依此類推。。。。
image.png
12.4. 數組的遍歷(重點)
12.4.1. 使用foreach語句遍歷數組
遍歷:就是對數組的每一項都“訪問”到并進行所需要的數據處理。
foreach( $數組名 as [$key =>] $value){
//這里,$key和$value只是變量,它會在遍歷數組的過程中,按順序依次取得數組每個單元的下標和值。
echo “
{$key} >>> {$value} “;
}
一維數組:
image.png
二維數組:
image.png
演示案例1:
輸出以下這個數組的每一項,求其平均值:
$arr1 = [11, 12, 13, 14];
image.png
演示案例2:
使用數組的遍歷語法,求以下這個數組的最大值及其下標!
$arr2 = [11, 18, 21, 14, 8];
方式一:
image.png
方式二:(選擇排序的思想)
假定一個值是最大值,循環出來的每一個值都跟最大值進行比較,如果大于最大值,此時給最大值重新賦予剛比較值,然后循環進行比較
image.png
12.4.2. 使用for循環語句遍歷數組
注意:for循環一般僅針對索引數組(下標為整數且連續)
一維索引數組遍歷:
image.png
二維索引數組遍歷:
image.png
數組的指針:每一個數組內部,都有一個“指針”,正常情況下,指針指向數組的某個單元,起初默認是指向第一個單元。
對于數組 $arr1 = array( 18, 22, 13, 28, 15, 33, );
初始狀態下,指針指向數組的第一個單元。
php中,有如下幾個函數,可以針對數組指針進行相應操作:
$re = current( $arr1); //取得數組中當前指針所在單元的值;
$re = key( $arr1 ); //取得數組中當前指針所在單元的鍵(下標);
$re = next( $arr1 ); //將數組中的指針往后移動一個位置,并取得新位置上的值;
$re = prev( $arr1 ); //將數組中的指針往前移動一個位置,并取得新位置上的值;
$re = end( $arr1 ); //將數組中的指針移動到最后一個位置,并取得新位置上的值;
$re = reset($arr1); //將數組中的指針移動到最前一個位置,并取得新位置上的值;
image.png
課堂練習:
請用for來遍歷如下數組,并按順序輸出其每一個單元的鍵和值:
$arr1 = array(‘a’, 2=>’b’, ‘c’, ‘x’=>’d’, ‘e’); //提示:count()函數可以求數組的長度
image.png
總結
以上是生活随笔為你收集整理的php7 数组与字符串,第7天 PHP字符串、数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php父类的静态变量,抽象父类中的PHP
- 下一篇: wdcp php5.3 pdo_mysq