真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP中的數(shù)組(Array)

定義數(shù)組的方式:

成都創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營產(chǎn)品:響應(yīng)式網(wǎng)站開發(fā)、成都品牌網(wǎng)站建設(shè)、成都全網(wǎng)營銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動的體驗,以及在手機(jī)等移動端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站制作、網(wǎng)站建設(shè)、移動互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運營、VI設(shè)計、云產(chǎn)品.運維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認(rèn)真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務(wù)。

  1. 使用array內(nèi)置關(guān)鍵字

  2. 使用[]定義

  3. 直接賦值

echo '

';

//定義數(shù)組的方式
//
//1、使用array內(nèi)置關(guān)鍵字
$arr = array(1,2,4);
print_r($arr);

//2、使用[]定義
$brr = [1,2,4];
print_r($brr);

//3、直接賦值
$crr[] = 1;
$crr[] = 2;
$crr[] = 4;

print_r($crr);

$drr[1] = 1;
$drr[2] = 2;
$drr[3] = 4;

print_r($drr);

數(shù)組的分類:

按照維度來分:一維數(shù)組、二維數(shù)組、多維數(shù)組

按照下標(biāo)來分:關(guān)聯(lián)數(shù)組、索引數(shù)組

echo '

';
//數(shù)組的分類
//按照維度來分:一維、二維、多維
//一維數(shù)組
$arr = array('jack','boy',23);
print_r($arr);

//二維數(shù)組
$arr = array(array('jack','boy',23),array('rose','girl',18));
print_r($arr);

//多維數(shù)組
$arr = array(array('jack','boy',23,'18nan'=>array(18000,180,18)),array('rose','girl',18));
print_r($arr);
echo '
';
//按照下標(biāo)分
//下標(biāo)是Int類型的 數(shù)組 叫索引數(shù)組
//下標(biāo)是string類型的 數(shù)組 叫關(guān)聯(lián)數(shù)組
//關(guān)聯(lián)數(shù)組
$arr = array('username'=>'fengfeng','sex'=>'girl','age'=>18,'boyfriend'=>array('xiaohei','xiaobai','xiaohuang'));
print_r($arr);

//索引數(shù)組
$brr = array( 0=>'jack',1=>'boy',2=>23);
print_r($brr);

注意:在PHP中,索引數(shù)組的下標(biāo)可以是非連續(xù)的值,只要在初始化時指定非連續(xù)的下標(biāo)值即可。如果指定的下標(biāo)值已經(jīng)聲明過,則屬于對變量重新賦值。(前邊已指定的索引值將被覆蓋)。如果沒有指定索引值的元素與指定索引索引值的元素混在一起賦值,沒有指定索引值的元素的默認(rèn)索引值,將緊跟指定索引值元素中的最高的索引值遞增。


echo '

';
$count = array(1,14 =>'gaomou','A gongsi','beijingshi',14=>'0103243223','gaoluofeng@qq.com');
print_r($count);
結(jié)果:
Array
(
    [0] => 1
    [14] => 0103243223
    [15] => A gongsi
    [16] => beijingshi
    [17] => gaoluofeng@qq.com
)

訪問數(shù)組的方式:

訪問一維數(shù)組是使用數(shù)組的名稱和索引值,二維數(shù)組也一樣。

echo '

';
$count = array(1,14 =>'gaomou','A gongsi','beijingshi',14=>'0103243223','gaoluofeng@qq.com');

echo $count[14];

輸出結(jié)果:0103243223


直接賦值下標(biāo)的分析:

echo '

';
$arr[] = 'a';
$arr[][] = 'b';
$arr[1][] = 'c';
$arr[1][][] = 'd';
$arr[][] = 'f';
$arr[][][] = 'e';
print_r($arr);

輸出結(jié)果:

Array
(
    [0] => a
    [1] => Array
        (
            [0] => b
            [1] => c
            [2] => Array
                (
                    [0] => d
                )
        )
    [2] => Array
        (
            [0] => f
        )
    [3] => Array
        (
            [0] => Array
                (
                    [0] => e
                )
        )
)
 

count()獲取 數(shù)組單元 個數(shù) 或者 對象成員 屬性個數(shù)

$arr = array('daoyan','zhuren','xiaozhang','jiaoshou','gaolaoshi');

//count()獲取數(shù)組 單元個數(shù) 或者 對象成員屬性個數(shù)
echo count($arr);
echo '


';

$num = count($arr);
echo $num;

輸出結(jié)果:5

         5

遍歷數(shù)組的幾種方法:

1、使用for語句循環(huán)遍歷(索引)數(shù)組:

$arr = array('daoyan','zhuren','xiaozhang','jiaoshou','gaolaoshi');


//方法一
$num = count($arr);
echo $num;
echo '


';

//使用for循環(huán),遍歷連續(xù)的索引數(shù)組,關(guān)聯(lián)數(shù)組會丟失無法打印出來
for($i = 0; $i < $num;$i++){
    echo $arr[$i].'
';
}

//方法二
echo count($arr);

//不推薦使用,因為在for循環(huán)中count($arr)要執(zhí)行N次,效率不高
for($i = 0; $i < count($arr);$i++){
    echo $arr[$i].'
';
}

2、foreach()遍歷數(shù)組:

    使用foreach語句遍歷數(shù)組時與數(shù)組的下標(biāo)無關(guān),不管是否是連續(xù)的數(shù)字索引數(shù)組,還是以字符串為下標(biāo)的關(guān)聯(lián)數(shù)組,都可以使用foreach語句遍歷。

foreach語句有兩種語法格式,第二種比較次要,但卻是第一種有用的擴(kuò)展。

第一種語法格式:

foreach($arr as $value){

    循環(huán)體

}

第二種語法格式:

foreach($arr as $key => $value){

    循環(huán)體

}

第一種格式遍歷給定的$arr數(shù)組。每次循環(huán)中,當(dāng)前元素的值被賦給變量$value,并且把數(shù)值內(nèi)部的指針向后移動一步,因此下一次循環(huán)中將會得到該數(shù)組的下一個元素,直到數(shù)組的結(jié)尾停止循環(huán),結(jié)束數(shù)組的遍歷。

第二種格式和第一種格式是做同樣的事情,只是當(dāng)前元素的鍵名也會在每次循環(huán)中被賦給變量$key。

$arr = ['daoyan','user1' =>'zhuren','username' =>'xiaozhang',9=>'jiaoshou','gaolaoshi'];

//第一種,其中$v是任意值,隨便取
foreach($arr as $v){
    echo $v.'
';
}
echo '


';
//第二種,將數(shù)組中每個單元的鍵和值全部輸出,其中$k是鍵、$v是值,$k,$v同樣是任意值,可隨便取
foreach($arr as $k=>$v){
    echo '鍵:'.$k.'=>值'.$v.'
';
}

結(jié)果:

daoyan
zhuren
xiaozhang
jiaoshou
gaolaoshi
鍵:0=>值daoyan
鍵:user1=>值zhuren
鍵:username=>值xiaozhang
鍵:9=>值jiaoshou
鍵:10=>值gaolaoshi

3、聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組

each()函數(shù)

each()函數(shù)需要傳遞一個數(shù)組作為參數(shù),返回數(shù)組中當(dāng)前元素的鍵/值對,并向后移動數(shù)組指針到下一個元素的位置。

鍵值對被返回為四個單元的數(shù)組,鍵名為 0,1,key 和 value。單元 0 和 key 包含有數(shù)組單元的鍵名,1 和 value 包含有數(shù)據(jù)。

 如果內(nèi)部指針越過了數(shù)組的末端,則 each() 返回 FALSE。

$brr = ['lily','girl','age','xiaoming'];

//each ---返回數(shù)組中當(dāng)前的 鍵值對 并將數(shù)組指針向前移動一步

echo '

';

//1
$id=each($brr);
print_r($id);
//2
$bd=each($brr);
print_r($bd);
//3
$cd=each($brr);
print_r($cd);
//4
$fd=each($brr);
print_r($fd);
var_dump($fd);
//5
$qd=each($brr);
print_r($qd);
var_dump($qd);

結(jié)果:

1Array
(
    [1] => lily
    [value] => lily
    [0] => 0
    [key] => 0
)
2Array
(
    [1] => girl
    [value] => girl
    [0] => 1
    [key] => 1
)
3Array
(
    [1] => age
    [value] => age
    [0] => 2
    [key] => 2
)
4Array
(
    [1] => xiaoming
    [value] => xiaoming
    [0] => 3
    [key] => 3
)
4.array(4) {
  [1]=>
  string(8) "xiaoming"
  ["value"]=>
  string(8) "xiaoming"
  [0]=>
  int(3)
  ["key"]=>
  int(3)
}
5.bool(false)

 

list()函數(shù)

它不是真正的函數(shù),而是PHP的語言結(jié)構(gòu)。

list() 用一步操作給一組變量進(jìn)行賦值,即把數(shù)組中的值賦給一些變量。 

 注: list() 僅能用于數(shù)字索引的數(shù)組并假定數(shù)字索引從0開始。

語法格式:

list(mixed varname,mixed...) =array_expression

list()語句和其他函數(shù)在使用上有很大的區(qū)別,并不是直接接收一個數(shù)組作為參數(shù)。而是通過“=”運算符以賦值的方式,將數(shù)組中每個元素的值,對應(yīng)的賦值給list()函數(shù)中的每個參數(shù)。list()函數(shù)又將它中的每個參數(shù)轉(zhuǎn)換為直接可以在腳本中使用的變量。

$brr = ['lily','girl','age','xiaoming'];

//list ---把數(shù)值中的值賦給一些變量
list($a,$b,$c) = $brr;

echo $a.'
';
echo $b.'
';
echo $c.'
';

結(jié)果:   lily
        girl
        age

while循環(huán)遍歷數(shù)組:

while( list($key,$value) = each(array_expression) ){

    循環(huán)體

}

echo '

';
$arr =['user1'=>'zhanglaoshi','user2'=>'lilaoshi','user3'=>'wanglaoshi'];

while(list($key,$value) = each($arr)){
    echo 'key:'.$key.'=>value'.$value.'
';
}

結(jié)果:
key:user1=>valuezhanglaoshi
key:user2=>valuelilaoshi
key:user3=>valuewanglaoshi

注意:在執(zhí)行 each() 之后,數(shù)組指針將停留在數(shù)組中的下一個單元或者當(dāng)碰到數(shù)組結(jié)尾時停留在最后一個單元。如果要再用 each 遍歷數(shù)組,必須使用reset( )。

while和foreach語句兩種方法的區(qū)別:

相同點:兩者遍歷數(shù)組的結(jié)果相同。

不同點:在使用while語句遍歷數(shù)組之后,each()語句已經(jīng)將傳入的數(shù)組參數(shù)內(nèi)部指針指向了數(shù)組的末端。當(dāng)再次使用while語句遍歷同一個數(shù)組時,數(shù)組指針已經(jīng)在數(shù)組的末端,each()語句直接返回FALSE,while語句不會執(zhí)行循環(huán)。只有在while語句執(zhí)行之前先調(diào)用一下reset()函數(shù),重新將數(shù)組指針指向第一個元素。

而foreach語句會自動重置數(shù)組的指針位置,當(dāng)foreach開始執(zhí)行時,數(shù)組內(nèi)部的指針會自動指向第一個單元。這意味著不需要在foreach循環(huán)之前調(diào)用reset函數(shù)。

簡單的說就是:while需要先調(diào)用一下reset()函數(shù),而foreach不需要。

數(shù)組指針相關(guān)操作函數(shù):

current();

key();

next();

prev();

end();

reset();

//數(shù)組指針相關(guān)操作函數(shù)

echo '

';
$arr = array('danyan','zhuren','xiaozhang','jiaoshou','gaolaoshi');
print_r($arr);

//current()返回指針指向的數(shù)據(jù)單元的值
var_dump((current($arr)));
var_dump(next($arr));
echo current($arr);

//返回指針的下一個位置所指向的數(shù)組單元的值
echo next($arr);
echo '
';

//返回指針的上一個位置所指向的數(shù)組單元的值
echo prev($arr);
echo '
';

echo end($arr);

//如果已經(jīng)到了最后一個單元,再想訪問下一個,會返回布爾值false
var_dump(next($arr));

//重置指針位置
reset($arr);

echo current($arr);

超全局變量預(yù)定義數(shù)組:

echo '

';
// print_r($_SERVER);

//網(wǎng)站根目錄
echo $_SERVER['DOCUMENT_ROOT'];
echo '
';
// 客戶端ip地址
echo $_SERVER['REMOTE_ADDR'];
echo '
';

//來源地址
echo $_SERVER['HTTP_REFERER'];

//當(dāng)前執(zhí)行的php腳本文件地址
echo $_SERVER['PHP_SELF'];


// print_r($_ENV);
echo '
';


// 此關(guān)聯(lián)數(shù)組包含 $_GET,$_POST 和 $_COOKIE 中的全部內(nèi)容。
print_r($_REQUEST);


//通過 HTTP POST 方法傳遞的已上傳文件項目組成的數(shù)組
$_FILES;

//通過 HTTP cookies 傳遞的變量組成的數(shù)組。是自動全局變量。
$_COOKIE;

//包含當(dāng)前腳本中 session 變量的數(shù)組
$_SESSION;

$username = 'alibaba';
print_r($GLOBALS);


分享題目:PHP中的數(shù)組(Array)
網(wǎng)址分享:http://weahome.cn/article/jshcsi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部