日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

關于PHP編程中“數(shù)組”的基礎知識_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:PHP在網(wǎng)站開發(fā)中的一些優(yōu)勢
在多數(shù)WEB開發(fā)者眼中,ASP和JSP都被認為是領跑者,而PHP卻被認為是個弱小的“掙扎者”,或者說它是一門被貶低為業(yè)余者才使用的語言,不值得參與企業(yè)WEB開發(fā)的競爭。在我看來,PH

關于數(shù)組:

PHP中的數(shù)組是復雜的,并且比許多其他高級語言中的數(shù)組更靈活。數(shù)組array是一組有序的變量,其中每個變量被叫做一個元素。數(shù)組可以被編號或者相關聯(lián),也就是數(shù)組的元素可以分別根據(jù)數(shù)字索引或文本化字符串來訪問

PHP中,數(shù)組可以包含標量(整數(shù),布爾,字符串,浮點數(shù))或復合值(對象甚至其他數(shù)組),并且可以包含不同類型的值

1。創(chuàng)建數(shù)組

PHP提供創(chuàng)建數(shù)組的array()語言結構

$numbers = array(5,4,3,2,1);

$words = array("web","database","application");

echo $numbers[2];

echo $words[0];

---------------------輸出結果----------------------------------------

3web

---------------------------------------------------------------------

默認情況下,數(shù)組的第一個元素的索引為0。數(shù)組中包含的值可以通過使用方括號[]語法來檢索和修改

$numbers[5] = 0;

數(shù)字化索引的數(shù)組可以創(chuàng)建位從任何索引值開始

$numbers = array(1=>"one","two","three","four");

也可以松散的索引

$numbers = array(1=>"one",3=>"three",5=>"zero");

可以通過給變量賦予一個沒有參數(shù)的array()來創(chuàng)建空數(shù)組。然后可以通過使用方括號[]語法來添加值

$error = array();

$error[] = "no error!!!";

$error[] = "second error!!!";

echo $error[0];

echo $error[1];

---------------------輸出結果----------------------------------------

no error!!!second error!!!

---------------------------------------------------------------------

2.關聯(lián)數(shù)組

關聯(lián)數(shù)組(associative array)使用字符串索引(或鍵)來訪問存儲在數(shù)組中的值

關聯(lián)索引的數(shù)組對于數(shù)據(jù)庫層交互非常有用

$newarray = array("first"=>1,"second"=>2,"third"=>3);

echo $newarray["second"];

$newarray["third"]=5;

echo $newarray["third"];

---------------------輸出結果----------------------------------------

25

---------------------------------------------------------------------

3.異構數(shù)組

PHP數(shù)組可以包含不同種類的值

$mixedBag = array("cat",42,8.5,false);

var_dump(mixedBag);

4.多維數(shù)組

創(chuàng)建包含數(shù)組的數(shù)組,數(shù)組維數(shù)沒有限制,但是一般很難想象一個多于三維的數(shù)組的用法

$planets = array(array("MM",1,2),array("NN",3,4),array("BB",5,6),array("VV",7,8));

print $planets[2][0];

$planets2 = array("MM"=>array("AA"=>1,"SS"=>2),

"NN"=>array("DD"=>3,"FF"=>4),

"BB"=>array("GG"=>6,"HH"=>7,"PP"=>array("haha!!!!")),

"VV"=>array("JJ"=>6,"KK"=>7,"LL"=>array("one","two")));

print $planets2["VV"]["LL"][0];

---------------------輸出結果----------------------------------------

BBone

---------------------------------------------------------------------

5.使用循環(huán)訪問數(shù)組

遍歷數(shù)組的方法有很多(使用while,for循環(huán))或者foreach語句,最容易的是foreach 語句

$length = array(0,107,202,400,475);

//將厘米轉換為寸

for($i=0;$i<5;$i )

{

echo ($length[$i]/3);

}

$j=0;

while(isset($length[$j]))

{

echo ($length[$j]/3);

$j ;

}

foreach($length as $cm)

{

echo ($cm/3);

}

---------------------輸出結果----------------------------------------

0

35.6666666667

67.3333333333

133.333333333

158.333333333

0

35.6666666667

67.3333333333

133.333333333

158.333333333

0

35.6666666667

67.3333333333

133.333333333

158.333333333

---------------------------------------------------------------------

foreach還可以迭代關聯(lián)數(shù)組的值

$sound = array("cow"=>"moo","dog"=>"woof",

"pig"=>"oink","duck"=>"quack");

foreach ($sound as $animal=>$noice)

{

echo "$animal 得叫聲是這樣的 $noice $noice......";

}

---------------------輸出結果----------------------------------------

cow 的叫聲是這樣的 moo moo......

dog 的叫聲是這樣的 woof woof......

pig 的叫聲是這樣的 oink oink......

duck 的叫聲是這樣的 quack quack......

---------------------------------------------------------------------

6.使用數(shù)組指針

與存儲在數(shù)組中的鍵和關聯(lián)值一起,PHP還擁有一個指向數(shù)組當前元素的內部索引,

有幾個函數(shù)使用并更新該數(shù)組索引來提供對數(shù)組元素的訪問

$a = array("a","b","c","d","e","f");

echo current($a);

each($a);

key($a);//目前數(shù)組的指針,返回其索引

echo current($a);//當前元素的值

each($a);//返回當前元素的值并將內部索引指向下一個元素

each($a);

echo current($a);

next($a);//指向下一個元素

echo current($a);

prev($a);//指向上一個元素

echo current($a);

end($a);//指向最后一個元素

echo current($a);

key($a);

echo current($a);

---------------------輸出結果----------------------------------------

abdedff

---------------------------------------------------------------------

7.基本的數(shù)組函數(shù)

integer count(mixed var)//在數(shù)組中返回元素的個數(shù),也可用于任何的變量

number max(array numbers)//返回數(shù)組中的最大值

number min(array numbers)//返回數(shù)組中的最小值

boolean in_array(mixed needle,array haystack[,bollean strict])//查找數(shù)組中的值,第三個參數(shù)可選,強制執(zhí)行類型檢查

mixed array_search(mixed needle,array haystack[,boolean strict])//返回 鍵 而不是布爾值,

找不到時返回false,找到的元素如果正好是第一個元素,則返回0,而PHP會自動轉化為false所以需要使用===判斷,如下

$a = array("a","b","c","d","e","f");

$index = array_search("a",$a);

if($index === false)

echo "在數(shù)組a中未發(fā)現(xiàn)字符'a'";

else

echo "Index = $index";

---------------------輸出結果----------------------------------------

Index = 0

---------------------------------------------------------------------

array array_reverse(array source[,bool preserve_keys])//逆轉數(shù)組,生成一個新數(shù)組,可選參數(shù)為true時,保留索引和元素之間的關聯(lián)

$a = array("a","b","c","d","e","f");

$newa = array_reverse($a);//直接翻轉

echo $newa[0];

$newb = array_reverse($a,true);//依舊保留了索引和元素之間的關聯(lián)

echo $newb[0];

---------------------輸出結果----------------------------------------

fa

---------------------------------------------------------------------

sort(array subject[,integer sort_flag])//根據(jù) 值 進行升序排列(在原數(shù)組中重新排列元素)

rsort(array subject[,integer sort_flag])//根據(jù) 值 進行降序排列(在原數(shù)組中重新排列元素)

可選參數(shù)可以指定為按數(shù)字方式SORT_NUMERIC還是字符串方式SORT_STRING或者通常的方式SORT_REGULAR排序

sort()、rsort()可以用于關聯(lián)數(shù)組,但是 鍵 將丟失

asort(array subject[,integer sort_flag])//根據(jù) 值 進行升序排列(在原數(shù)組中重新排列元素),保持鍵值關聯(lián)

arsort(array subject[,integer sort_flag])//根據(jù) 值 進行降序排列(在原數(shù)組中重新排列元素),保持鍵值關聯(lián)

當asort() arsort()用于非關聯(lián)數(shù)組時,元素按排序后的次序重新排列,但是訪問元素的索引不改變

integer ksort(ayyay subject [,integer sort_flag])//根據(jù) 鍵或索引 進行升序排列

integer krsort(ayyay subject [,integer sort_flag])//根據(jù) 鍵或索引 進行降序排列

usort(array subject, string compare_function)//根據(jù)用戶定義排序,用戶定義自己的排序規(guī)則函數(shù),但函數(shù)必須符合

uasort(array subject, string compare_function)//integer my_compare_function(mixed a, mixed b),a>b返回1,a uksort(array subject, string compare_function)//a等于b時返回0

$numbers = array(16,3,2,171,5,24,6,19);

sort($numbers);

foreach($numbers as $n)

echo $n." ";

$numbers = array(16,3,2,171,5,24,6,19);

rsort($numbers);

foreach($numbers as $n)

echo $n." ";

$numbers = array(16,3,2,171,5,24,6,19);

sort($numbers,SORT_STRING);

foreach($numbers as $n)

echo $n." ";

$a = array("o"=>"kk","e"=>"zz","z"=>"hh","a"=>"rr");

asort($a);

foreach ($a as $keyname=>$keyvalue)

echo $keyvalue;

$a = array("o"=>"kk","e"=>"zz","z"=>"hh","a"=>"rr");

ksort($a);

foreach ($a as $keyname=>$keyvalue)

echo $keyvalue;

//基于長度比較兩個字符串

function cmp_length($a,$b)

{

if(strlen($a) < strlen($b))

return -1;

if(strlen($a) > strlen($b))

return 1;

return 0;

}

$animals = array("cow","ox","monkey","mimi");

usort($animals,"cmp_length");

foreach($animals as $an)

echo $an;

---------------------輸出結果----------------------------------------

2 3 5 6 16 19 24 171 171 24 19 16 6 5 3 2 16 171 19 2 24 3 5 6 hhkkrrzzrrzzkkhhoxcowmimimonkey

---------------------------------------------------------------------

array_merge($a,$b)//組合數(shù)組,個人認為是比較有趣的函數(shù)之一,從兩個數(shù)組生成一個數(shù)組,具有相同 鍵 的值會被覆蓋

////////////////////////////代碼部分////////////////////////////////////////

$a = array("name"=>"zhangsan",10,100);

$b = array("name"=>"lisi",4,6,8);

$c = array_merge($a,$b);

var_dump($c);

//////////////////////////////////////////////////////////////////////////

---------------------輸出結果----------------------------------------

array(6) { ["name"]=> string(4) "lisi" [0]=> int(10) [1]=> int(100) [2]=> int(4) [3]=> int(6) [4]=> int(8) }

---------------------------------------------------------------------

array array_combine(array $a,array $b)//a數(shù)組的值為新數(shù)組的鍵,b數(shù)組的值為新數(shù)組的值,數(shù)組長度不同時,返回false

////////////////////////////代碼部分////////////////////////////////////////

$a = array("name","math","china");

$b = array("zhangsan",4,6);

$c = array_combine($a,$b);

var_dump($c);

//////////////////////////////////////////////////////////////////////////

---------------------輸出結果----------------------------------------

array(3) { ["name"]=> string(8) "zhangsan" ["math"]=> int(4) ["china"]=> int(6) }

---------------------------------------------------------------------

分享:PHP代碼安全和SQL Injection防范
在PHP編碼的時候,如果考慮到一些比較基本的安全問題,首先一點: 1. 初始化你的變量 為什么這么說呢?我們看下面的代碼: 以下為引用的內容: i

來源:模板無憂//所屬分類:PHP教程/更新時間:2009-06-27
相關PHP教程