PHP筆記之?dāng)?shù)組

PHP的數(shù)組功能很強(qiáng)大,有很多和OC或者其他語言不一樣的地方赌莺,譬如說其數(shù)組元素不限制類型抢韭,這種類似于swift的元組。以下是其相關(guān)特性:
1.數(shù)組中的元素 由鍵和值構(gòu)成,key/value
2.兩種下標(biāo)類型:①整數(shù)(索引數(shù)組) ②字符串
3.[ ]來操作下標(biāo)菇绵,也可以用{}進(jìn)行互換肄渗,建議使用[ ]來指定下標(biāo)
4.如果是關(guān)聯(lián)數(shù)組,一定要帶引號咬最,不要使用常量名稱翎嫡,處理速度較之慢8倍


數(shù)組

數(shù)組聲明時,如果[ ]中沒有下標(biāo)永乌,往數(shù)組中添加元素是按自動增長的下標(biāo)順序來賦值

$arr = array();
for($i = 0;$i<2;$i++){
    array[ ] = $i * $i;
}
echo'<pre>';//數(shù)組的最原始形態(tài)語句
print_r($arr); //array[0] = 0 ;[array[1] = 1;
echo'</pre>;

數(shù)組的自動增長下標(biāo)默認(rèn)是從0開始惑申,自動增長的出現(xiàn)過的最大值加1;
關(guān)聯(lián)數(shù)組的字符串下標(biāo)翅雏,不會影響索引下標(biāo)的排列規(guī)則圈驼;
負(fù)數(shù)也可以做下標(biāo);

$arr[ ] = 10;//下標(biāo)0
$arr[ ] = 10;//下標(biāo)1
$arr[8] = 10;//下標(biāo)8
$arr[ ] = 10;//下標(biāo)9
$arr[9] = 10;//下標(biāo)9覆蓋上一個
$arr[4] = 10;//下標(biāo)4
$arr[ ] = 18;//下標(biāo)10
$arr['one'] = 66;
$arr[ ] = 99;//下標(biāo)11
$arr[-100] = 11;//下標(biāo)-100
$arr[ ]  = 20;//下標(biāo)12

數(shù)組的聲明

方式1:

$arr =  array("aaa","two"=>"bbb",9=>"ccc","ddd");

方式2:php5.4以后 短數(shù)組定義語法

$arr = ["aaa","bbb",333,9=>444,555];

刪除數(shù)組中的一個元素使用unset(),下標(biāo)不會重新索引望几,需要使用array_values()函數(shù)重新索引

$arr = ["one","two","three","four"];
unset($arr[2]);//Array ( [0] => one [1] => two [3] => four )
$arr = array_values($arr);
print_r(arr);
//Array ( [0] => one [1] => two [2] => four )

多維數(shù)組可以調(diào)用方式和OC類似绩脆,不過多了一個關(guān)聯(lián)下標(biāo)的形式

$arr[1]["one"];

數(shù)組的遍歷

for循環(huán)

效率最高,但數(shù)組下標(biāo)比一定連續(xù),關(guān)聯(lián)數(shù)組無法遍歷出值

$arr = array("wp","wo","we","ew");
 $num = count($arr);
 for($i=0; $i < $num; $i++) { 
    echo $arr[i];
 }

foreach

有多少元素橄抹,循環(huán)多少次

foreach ($variable as $key => $value) {
    可以把鍵值都返回
 }

聯(lián)合使用List(),each()和while循環(huán)

List()函數(shù)

將數(shù)組中的元素轉(zhuǎn)為變量使用
①等號左邊使用List()函數(shù)靴迫,等號右邊只能是一個數(shù)組。
②數(shù)組中有幾個元素楼誓,在list()中就用幾個參數(shù)玉锌,而且參數(shù)必須是變量(新聲明的自定義變量),不能是值

③只能將索引數(shù)組(下標(biāo)是連續(xù)的)疟羹,轉(zhuǎn)為變量主守,是從0開始

④可以在list()參數(shù)中通過,空項選擇性的接收數(shù)組中的元素

list($a, ,$c) = array("123","sp","we");
echo $a."<br>";
echo $c."<br>"; 

list($name,$pro) = explode("_",$str);
echo $name."<br>";
echo $pro."<br>";
each()函數(shù)

只是一個函數(shù)榄融,參數(shù)就是一個數(shù)組参淫,返回值也是一個數(shù)組
①返回的值是一個數(shù)組,數(shù)組固定有4個元素剃袍,且下標(biāo)也是固定的(1(值)Value(值)0(下標(biāo))key(下標(biāo)))
②each()只處理當(dāng)前的元素(默認(rèn)當(dāng)前元素為第一個元素黄刚,指針指向第一個)轉(zhuǎn)為數(shù)組信息后捎谨,處理完后民效,指針指向下一個元素
③如果指定已經(jīng)在結(jié)束位置了,如果再使用each()獲取元素涛救,返回false

$arr = array("one"=>"wp","wo","we");
    echo '<pre>';
    $one = each($arr); 

    print_r($one);
    $one = each($arr);

    print_r($one);
    $one = each($arr);

    print_r($one);
    $one = each($arr);

    var_dump($one);
    echo '</pre>';
//返回結(jié)果
Array ( [1] => wp [value] => wp [0] => one [key] => one ) 
Array ( [1] => wo [value] => wo [0] => 0 [key] => 0 ) 
Array ( [1] => we [value] => we [0] => 1 [key] => 1 ) 
bool(false) 
List()畏邢、each()、while聯(lián)合使用
$arr = ["one"=>"妹紙","wp","we","ee"];
while (list($key,$value) = each($arr)) {
        echo "{$key} => {$value}<br>";
    }

使用數(shù)組的內(nèi)部指針控制函數(shù)遍歷數(shù)組

   next($arr);//下一個
    end($arr);//最后一個
    prev($arr);//前一個
    reset($arr);//重置
    key($arr);//獲取當(dāng)前下標(biāo)
    current($arr);//獲取當(dāng)前值
超全局?jǐn)?shù)組

超全局?jǐn)?shù)組检吆,系統(tǒng)已經(jīng)聲明完的變量舒萎,可以直接使用。每個預(yù)定義數(shù)組都有自己獨(dú)特的功能蹭沛。
常用的超全局?jǐn)?shù)組

$_SERVER 服務(wù)器變量臂寝,可以獲取服務(wù)器所有的信息
$_ENV 環(huán)境變量
$_GET 接收用戶通過URL向服務(wù)器傳的參數(shù)
$_POST 接收用戶通過HTTP協(xié)議向服務(wù)器傳的參數(shù) 
$GLOBALS
$_REQUEST 有安全風(fēng)險章鲤,一般不用
$_FILES 上傳文件信息
$_COOKIE     
 $_SESSION 
 $GLOBALS  = array("123","wp");
    function demo(){
        // echo $GLOBALS.'<br>';
        // print_r($GLOBALS).'<br>';
        foreach ($GLOBALS as $son => $fuck) {
            echo $son.$fuck.'<br>';
        }
    }
    demo();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咆贬,隨后出現(xiàn)的幾起案子败徊,更是在濱河造成了極大的恐慌,老刑警劉巖掏缎,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件皱蹦,死亡現(xiàn)場離奇詭異,居然都是意外死亡眷蜈,警方通過查閱死者的電腦和手機(jī)沪哺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酌儒,“玉大人辜妓,你說我怎么就攤上這事〖稍酰” “怎么了肖爵?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長差购。 經(jīng)常有香客問我忍抽,道長,這世上最難降的妖魔是什么插掂? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任灰瞻,我火速辦了婚禮,結(jié)果婚禮上辅甥,老公的妹妹穿的比我還像新娘酝润。我一直安慰自己,他們只是感情好璃弄,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布要销。 她就那樣靜靜地躺著,像睡著了一般夏块。 火紅的嫁衣襯著肌膚如雪疏咐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天脐供,我揣著相機(jī)與錄音浑塞,去河邊找鬼。 笑死政己,一個胖子當(dāng)著我的面吹牛酌壕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼卵牍,長吁一口氣:“原來是場噩夢啊……” “哼果港!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起糊昙,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤京腥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后溅蛉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體公浪,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年船侧,在試婚紗的時候發(fā)現(xiàn)自己被綠了欠气。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡镜撩,死狀恐怖预柒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情袁梗,我是刑警寧澤宜鸯,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站遮怜,受9級特大地震影響淋袖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锯梁,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一即碗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧陌凳,春花似錦剥懒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至充岛,卻和暖如春保檐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背裸准。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工展东, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炒俱。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親权悟。 傳聞我的和親對象是個殘疾皇子砸王,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容