日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > php數(shù)組定義與變量銷毀和一維數(shù)組排序

php數(shù)組定義與變量銷毀和一維數(shù)組排序

來源:程序員人生   發(fā)布時(shí)間:2013-11-13 00:20:15 閱讀次數(shù):3189次

本文章先是介紹關(guān)于php中的數(shù)組定義與數(shù)組的銷毀,之后再用一個(gè)實(shí)例來說明一維數(shù)據(jù)的排序方法。

PHP數(shù)組的定義,代碼如下:

  1. $array = array('one','two','three'); 
  2. var_dump($array); 

在本代碼片段的第一行,定義了一個(gè)一維數(shù)組$array,第二行的時(shí)候我們格式化輸出了這個(gè)數(shù)組,結(jié)果是這樣的:

  1. array(3) { 
  2. [0]=> 
  3. string(3) "one" 
  4. [1]=> 
  5. string(3) "two" 
  6. [2]=> 
  7. string(5) "three" 

現(xiàn)在兄弟解釋一下這個(gè)輸出結(jié)果,首先這個(gè)數(shù)組的輸出結(jié)果的第一行,array(3)告訴我們這是個(gè)有三個(gè)元素的數(shù)組,首先0號元素是一個(gè)長度為3的字符串(string(3))…篇幅關(guān)系剩下兩個(gè)就不說了吧,吼吼……,這說明什么呢?這說明在PHP中如果我們不為數(shù)組指定下標(biāo)的話,那么他就自己自作主張的從零開始給我們弄一個(gè)下標(biāo)出來——也就是PHP數(shù)組中的鍵名;再看看下邊的例子:

  1. $array = array('one',”hello”=>'two','three'); 
  2. var_dump($array); 

這一次我們定義數(shù)組的時(shí)候,為第二個(gè)元素指定了下標(biāo)(從此以后,在本文中就叫做鍵名了,下標(biāo)有點(diǎn)含糊不清!),第二個(gè)元素指定了鍵名(hello),咱們再看看輸出結(jié)果,代碼如下:

  1. array(3) { 
  2. [0]=> 
  3. string(3) "one" 
  4. ["hello"]=> 
  5. string(3) "two" 
  6. [1]=> 
  7. string(5) "three" 

我想你也像我一樣看到了一個(gè)很智能的現(xiàn)象,第一個(gè)元素的鍵名還是0——這個(gè)我們可以理解,因?yàn)槲覀儧]有指定,而PHP數(shù)組必須要有一個(gè)鍵名,PHP就自作主張從零開始創(chuàng)立了一個(gè)鍵名;第二個(gè)元素的時(shí)候,我們指定了鍵名,PHP就尊重我們的意見用了這個(gè)鍵名;復(fù)雜的事情在第三個(gè)元素,第三個(gè)元素,看起來也很簡單,我們沒有指定鍵名,PHP自動(dòng)的把最大整數(shù)鍵名加上1,作為了鍵名。但是大家想過沒有,如果我們把第一個(gè)元素的鍵名修改為“-5”,第二個(gè)元素鍵名不變,結(jié)果會(huì)是什么呢?我們拭目以待,代碼如下:

  1. $array = array(-5=>'one',"hello"=>'two','three'); 
  2. var_dump($array); 

如果你想當(dāng)然的認(rèn)為,第三個(gè)元素的鍵名應(yīng)該是-4,那么我告訴你在PHP4.3.0之前這個(gè)想法是對的,但是之后就錯(cuò)了,現(xiàn)在也就是PHP4.3.0之后的版本你將看到如下結(jié)果:

  1. array(3) { 
  2. [-5]=> 
  3. string(3) "one" 
  4. ["hello"]=> 
  5. string(3) "two" 
  6. [0]=> 
  7. string(5) "three" 

是的第三個(gè)元素是從0開始的,也就是不管你的負(fù)數(shù)有多小,下一個(gè)元素要是讓PHP來定義鍵名的話,那么他就是從0開始——記住這個(gè)地方說的是,在現(xiàn)有的鍵名中如果最大的依然是個(gè)負(fù)數(shù),不管負(fù)數(shù)有多小,PHP也是從零開始下一個(gè)鍵名。

PHP數(shù)組的銷毀很簡單,像銷毀其他變量一樣。

銷毀整個(gè)數(shù)組:unset($array)

銷毀數(shù)組中的一個(gè)元素:unset($array[-5])

不管在現(xiàn)實(shí)生活中還是程序世界里,順序總是很重要——真不敢想象一個(gè)沒有順序的世界會(huì)什么樣子!PHP數(shù)組也不例外。PHP提供了四組針對PHP數(shù)組進(jìn)行排序的函數(shù),前三種都是針對一維數(shù)組的,我們先說這三種,第四種對多維數(shù)組的排序在下一篇文章中說,那個(gè)有點(diǎn)復(fù)雜。

第一組:sort 和 rsort,按照PHP數(shù)組鍵值的順序asc和逆序desc進(jìn)行排序,同時(shí)破壞原來數(shù)組的索引關(guān)系——其實(shí)是刪除索引之后重新建立從0開始的數(shù)字索引,看一下例程,代碼如下:

  1. <?php 
  2. $a = array("a"=>1,2); 
  3. sort($a); 
  4. var_dump($a); 
  5. rsort($a); 
  6. var_dump($a); 
  7. ?> 

看一下第一個(gè)輸出結(jié)果,第一個(gè)輸出:

  1. array(2) { 
  2.   [0]=> 
  3.   int(1) 
  4.   [1]=> 
  5.   int(2) 

第二個(gè)輸出:

  1. array(2) { 
  2.   [0]=> 
  3.   int(5) 
  4.   [1]=> 
  5.   int(4) 

發(fā)現(xiàn)沒有我們原來定義的索引a哪里去了?哪里去了?可以肯定的說是被他們無情的刪除了,你要是對原來的索引關(guān)系并不在意的話,可以使用他們!

第二組函數(shù):asort 和 arsort ,這兩個(gè)函數(shù)就比較厲害一點(diǎn)了,只要他們可以保留數(shù)組原有的索引關(guān)系,把上例的sort 和 rsort 分別用這兩個(gè)函數(shù)替換一下,看運(yùn)行結(jié)果:

  1. array(2) { 
  2.   ["a"]=> 
  3.   int(1) 
  4.   [0]=> 
  5.   int(2) 
  6. array(2) { 
  7.   [0]=> 
  8.   int(2) 
  9.   ["a"]=> 
  10.   int(1) 

這個(gè)一看就明白的,不用說了吧!

第三組PHP數(shù)組排序函數(shù):krsort 和 ksort 這兩個(gè)不同于以上兩組,這兩函數(shù)是對鍵名進(jìn)行排序的,大家可以把上例的函數(shù)替換成這兩個(gè),看看具體運(yùn)行結(jié)果,這里也不說了,不然這個(gè)文章寫的就太長了,怕有些兄弟沒有耐心看到本文的重點(diǎn),雖然重點(diǎn)就在下邊!

通過自定義函數(shù)對PHP數(shù)組進(jìn)行排序,有三個(gè)函數(shù)分別是:

uasort 通過自定義函數(shù)對PHP數(shù)組的鍵值進(jìn)行排序,并且保留原來的索引關(guān)系。

uksort 通過自定義函數(shù)對PHP數(shù)組的鍵名進(jìn)行排序,并且保留原來的索引關(guān)系。

usort通過自定義函數(shù)對PHP數(shù)組的鍵值進(jìn)行排序,并且刪除原來的索引關(guān)系,從零開始建立新的索引。

這個(gè)地方當(dāng)然需要一個(gè)例子,首先頂一個(gè)函數(shù),這個(gè)函數(shù)需要接受兩個(gè)參數(shù),并且返回值是一定的,第一個(gè)參數(shù)等于第二個(gè)參數(shù)的時(shí)候返回0,小于的時(shí)候返回-1,大于返回1,代碼如下:

  1. function cmp($a,$b){ 
  2.  $a+=1; 
  3.  $b+=3;//改變這些值之后進(jìn)行比較 
  4.  
  5.  if($a==$breturn 0; 
  6.  return ($a&lt;$b)?-1:1; 
  7.  
  8. $a =array(1,4,3,5); 
  9. uasort($a,'cmp'); 
  10. var_dump($a); 

輸出結(jié)果:

  1. array(4) { 
  2.   [0]=> 
  3.   int(1) 
  4.   [3]=> 
  5.   int(5) 
  6.   [1]=> 
  7.   int(4) 
  8.   [2]=> 
  9.   int(3) 

呵呵……是不是比不排序還亂呢?我們這里只是演示了使用的方法而已,具體你用到的時(shí)候自己搞吧!你要是不對這些數(shù)值進(jìn)行操作之后再比較,例如我們這里:

$a+=1;$b+=3;//改變這些值之后進(jìn)行比較

在PHP手冊中,一共定義了74個(gè)數(shù)組函數(shù),涵蓋了PHP數(shù)組的定義,賦值,排序,數(shù)值操作,比較,以及對數(shù)組的鍵名,鍵值反轉(zhuǎn)……等等我們幾乎能夠想到的所有功能。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 成人免费在线观看 | 亚洲福利视频一区 | www久久久久| 亚洲精品国产精品乱码在线观看 | 精品久久福利 | 国产精品精品视频一区二区三区 | 精品久久久久久久久久久久 | 欧美久久一区 | 亚洲v国产v | 色呦呦视频 | 五月激情久久 | 国产黄色一区 | 免费网站黄 | 国产精品不卡视频 | 黄色片网址 | 羞羞视频在线观看免费 | 日韩国产精品一区二区 | 午夜三区| 欧美巨猛xxxx猛交黑人97人 | 中文字幕国产一区 | 日韩久久一区二区三区 | 最新av网站在线观看 | 午夜在线精品偷拍 | 久久新视频 | 99久久精品免费看国产免费软件 | 精精久久 | 精品美女久久久久久免费 | 日本国产精品视频 | 毛片国产| 色片免费看 | 久久黄色免费网站 | 亚洲欧美精品一区 | 成人在线播放 | av一区二区三区 | 成人av在线电影 | 99青草 | 中文字幕影院 | 久久成人精品 | 色呦呦一区二区三区 | 在线不卡视频 | aaaaaaaaa特黄少妇 |