- 數(shù)組的概念是什么?數(shù)組根據(jù)索引分為哪兩種,如何區(qū)分步藕?數(shù)組的賦值方式有哪兩種?
數(shù)組是一個可以存儲一組或一系列數(shù)值的變量(復(fù)合型變量)
索引數(shù)組(索引值為數(shù)字挑格,以0開始)和關(guān)聯(lián)數(shù)組(以字符串作為索引值)
數(shù)組的賦值方式有哪兩種咙冗?
數(shù)組的聲明方式主要有兩種。
1.通過array()函數(shù)聲明數(shù)組漂彤;可以通過key=>value的方式分別定義索引和值雾消,也可以不定義數(shù)組的索引下標(biāo)瞬逊,只給出數(shù)組的元素值。
2.直接為數(shù)組元素賦值,不需要調(diào)用array()函數(shù)仪或。
例如: $arr[0] = 1; $arr[1] = 2;
特別注意:
數(shù)組的下標(biāo)如果是等價于整數(shù)的字符串值(但不能以0開頭),則會被當(dāng)作整數(shù)對待士骤。
例如: $array[3] 與 $array['3'] 引用的是相同的一個元素范删,而 $array['03'] 引用的則就是另外的一個元素了。
32.數(shù)組如何遍歷拷肌?
①for循環(huán)
②foreach循環(huán) 到旦,這是最常用的遍歷方式。用法如下:foreach($arr as $key=>$value){}
③list each 和while 配合起來循環(huán)
- foeach數(shù)組的時候指針是如何指向的巨缘?list()/each()/while()循環(huán)數(shù)組的時候指針如何指向的呢添忘?
當(dāng)foreach開始執(zhí)行的時候,數(shù)組內(nèi)部的指針會自動指向第一個單元若锁。因?yàn)閒oreach所操作的是指定數(shù)組的拷貝搁骑,而不是該數(shù)組本身。而each()一個數(shù)組后又固,數(shù)組指針將停留在數(shù)組中的下一個單元或者碰到數(shù)組結(jié)尾時停留在最后一個單元仲器。如果要再次使用each()遍歷數(shù)組,必須要使用reset(). reset()將數(shù)組的內(nèi)部指針倒回到第一個單元并返回第一個數(shù)組單元的值仰冠。
- 如何計算數(shù)組長度(或者說計算數(shù)組中所有元素的個數(shù))乏冀?字符串怎么取長度?
count() -- 計算數(shù)組中的元素個數(shù)洋只。 可以使用count(數(shù)組名)或者count(數(shù)組名,1),如果有第二個參數(shù)辆沦,并且是數(shù)字1,則表示遞歸統(tǒng)計數(shù)組元素的個數(shù)识虚。如果第二個參數(shù)是數(shù)字0肢扯,則等同于只有一個參數(shù)的count()函數(shù)。
sizeof() -- count() 的別名(count — 計算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€數(shù))字符串:
strlen()— 獲取字符串長度
mb_strlen()— Get string length
- 數(shù)組中相關(guān)的常用函數(shù)有哪些舷礼?
1) count --(sizeof別名)— 計算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€數(shù) 例如:int count ( mixed $var [, int $mode ] ) $var 通常都是數(shù)組類型鹃彻,任何其它類型都只有一個單元。 $mode 默認(rèn)值為0. 1為開啟遞歸地對數(shù)組計數(shù)
2) in_array ( mixed $needle , array $haystack [, bool $strict ] ) — 檢查數(shù)組中是否存在某個值妻献。如果 needle 是字符串蛛株,則比較是區(qū)分大小寫的。如果第三個參數(shù) strict 的值為 TRUE 則 in_array() 函數(shù)還會檢查 needle 的類型是否和 haystack 中的相同育拨。
3) array_merge(array $array1 [, array $array2 [, array $... ]] ) 將一個或多個數(shù)組的單元合并起來谨履,一個數(shù)組中的值附加在前一個數(shù)組的后面。返回作為結(jié)果的數(shù)組熬丧。 特別注意:如果輸入的數(shù)組中有相同的字符串鍵名笋粟,則該鍵名后面的值將覆蓋前一個值。然而,如果數(shù)組包含數(shù)字鍵名害捕,后面的值將不會覆蓋原來的值绿淋,而是附加到后面. 如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引!
4) 數(shù)組與字符串之間的轉(zhuǎn)換 (1)explode ( string $separator , string $string [, int $limit ] ) 使用一個分隔字符來分隔一個字符串尝盼。 (2)implode ( string $glue , array $arr ) 使用一個連接符將數(shù)組中的每個單元連接為一個字符串吞滞。join 為 implode 的別名
5) sort(array &$array [, int $sort_flags ]) — 對數(shù)組按照值排序,當(dāng)本函數(shù)結(jié)束時數(shù)組單元將被從最低到最高重新安排盾沫。
- 數(shù)組合并函數(shù)array_merge()和數(shù)組加法運(yùn)算$arr + $arr2 的區(qū)別是什么裁赠?
array_merge()->使用array_merge(),如果是關(guān)聯(lián)數(shù)組合并赴精,如果數(shù)組的鍵名相同佩捞,那么后面的值將覆蓋前者;如果是數(shù)字索引數(shù)組合并蕾哟,則不覆蓋一忱,而是后者附加到前者后面。
"+"->使用數(shù)組加法運(yùn)算谭确,與array_merge()不同掀潮,加法運(yùn)算不管是關(guān)聯(lián)數(shù)組還是數(shù)字索引數(shù)組,都是將相同鍵名的的值舍棄琼富,也就是只保留首次出現(xiàn)該鍵名的元素仪吧,后來的具有相同鍵名的元素都不會被加進(jìn)來鞠眉。
- 字符串定義的時候單引號和雙引號有什么區(qū)別薯鼠?
單引號加載速度比雙引號加載速度快.
- echo(),print(),print_r()的區(qū)別?
(1)echo 是語法械蹋,Output one or more strings哗戈,沒有返回值郊艘;
(2)print 是函數(shù),不能輸出數(shù)組和對象唯咬,Output a string纱注,print有返回值;
(3)print_r 是函數(shù)胆胰,可以輸出數(shù)組狞贱。print_r是個比較有意思的函數(shù),可以輸出stirng蜀涨、int瞎嬉、float蝎毡、array、object等氧枣,輸出array時會用結(jié)構(gòu)表示沐兵,print_r輸出成功時返回true;而且print_r可以通過print_r($str,true)來便监,使print_r不輸出而返回print_r處理后的值痒筒。此外,對于echo和print茬贵,基本以使用echo居多,因?yàn)槠湫时萷rint要高移袍。
- 按照功能分類說說都有哪些字符串處理函數(shù)解藻?這些函數(shù)的作用是什么?
A. 字符串輸出函數(shù)
(1)echo $a,$b,$c......; 是一個語言結(jié)構(gòu)葡盗,而不是一個真正的函數(shù)螟左。
(2)print($a) 本函數(shù)輸出字符串。若成功則返回 1觅够,失敗返回 0
(3)print_r($a)
(4)var_dump($a); 能輸出類型胶背、長度、值
B. 去除字符串首尾空格的函數(shù): trim ltrim rtrim(別名:chop) 使用第二個參數(shù)喘先,還可以去除指定的字符钳吟。
C. 轉(zhuǎn)義字符串函數(shù):addslashes()
D. 獲取字符串長度的函數(shù):strlen()
E. 截取字符串長度的的函數(shù):substr()
F. 檢索字符串函數(shù): strstr() , strpos()
G. 替換字符串函數(shù):str_replace()
- 請給出以下問題的正確答案?
1).$arr = array('james', 'tom', 'symfony');請將$arr數(shù)組的值用’,’分割并合并成字符串輸出窘拯?
echo implode(‘,’,$arr);
2).$str = ‘jack,james,tom,symfony’; 請將$str用’,’分割红且,并把分割后的值放到$arr數(shù)組中?
$arr = explode(‘,’,$str);
3).$arr = array(3,7,2,1,’d’,’abc’);
請將$arr按照從大到小的順序排序涤姊,并保持其鍵值不變暇番? arsort($arr); print_r($arr);
4).$mail = “[gaofei@163.com](mailto:gaofei@163.com)”;
請將此郵箱的域(163.com)取出來并打印,看最多能寫出幾種方法思喊?
echo strstr($mail,'163');
echo substr($mail,7);
$arr = explode("@",$mail); echo $arr[1];
5). 如果有一個字符串壁酬,該字符串是“123,234恨课,345舆乔,”。請問如何切割掉這個字符串最后一個逗號剂公?
6). 獲取隨機(jī)數(shù)的函數(shù)有哪幾個蜕煌?mt_rand() 和 rand()哪個執(zhí)行速度快?
轉(zhuǎn)自:http://bbs.itheima.com/forum.php?mod=viewthread&tid=301780&extra=page%3D1