數(shù)組
數(shù)組概念:
一個(gè)變量中榄融,存放多個(gè)值,每個(gè)值在變量中位置稱索引衛(wèi)視(下標(biāo))异旧。
數(shù)組中類(lèi)型可以不相同岂却,指定下標(biāo)可以不連續(xù)。
數(shù)組的分類(lèi):
- 索引式數(shù)組
數(shù)組的下標(biāo)都是整數(shù)得封,默認(rèn)數(shù)組的索引下是從0開(kāi)始 - 關(guān)聯(lián)式數(shù)組
數(shù)組的下標(biāo)是以字串表示的(在其他強(qiáng)類(lèi)型語(yǔ)言中有的稱這個(gè)為集合)
數(shù)組定義
- 直接賦值: $數(shù)組名[下標(biāo)]="值"
<?php
echo "==============索引式數(shù)組=================";
$a[ ]=10;
$a[ ]=20;
$a[ ]=30;
$a[10]="cc";
$a[ ]="bb";
echo "==============關(guān)聯(lián)式數(shù)組==================";
$p["name"]="張三";
$p["sex"]="男";
$p["age"]=20;
$p["name"]="李四"; //修改
- 使用array語(yǔ)言結(jié)構(gòu)來(lái)定義
<?php
$a1 = array(0=>10,1=>20 );
$a2 = array(10,20,30);
$a3 = array("aa","bb","cc");
$a4 = array("aa" =>"AAA","bb"=>"BBB");
- 使用[]快捷方式定義數(shù)組
<?php
$a1 = [0=>10,1=>20];
$a2 = [10,20,30];
$a3 = ["aa","bb","cc"];
$a4 = ["aa" =>"AAA","bb"=>"BBB"];
數(shù)組輸出
<?php
$a[0]="10";
$a[1]="20";
$a[5]="aa";
$a[8]=true;
print_r($a);//輸出數(shù)組
var_dump($a);//輸出數(shù)組,并輸出每個(gè)的類(lèi)型
多維數(shù)組
多維數(shù)組:當(dāng)一個(gè)數(shù)組中的元素單元還是一個(gè)數(shù)組時(shí),稱為多維數(shù)組奈辰。(幾層就是幾維)
<?php
echo $a[10]; //一維數(shù)組
echo $a[1][2]; //二維數(shù)組
$a = array(10,20,40,50); //一維數(shù)組
$b = array( array(10,20),array(30,40)...); //二維數(shù)組
如二維數(shù)組的賦值:
直接賦值:$a[ ][ ]=10;
數(shù)組遍歷
<?php
//數(shù)組下標(biāo)需要連續(xù)
$a=[12,23,234,436,63,34,234];
for($i=0;$i<count($a);$i++)
{
echo $a[$i]."\n";
}
//使用foreach遍歷數(shù)組
//k是下標(biāo),v是對(duì)應(yīng)下標(biāo)對(duì)應(yīng)的數(shù)值
foreach ($a as $k => $v) {
echo $k."=>".$v."\n";
}
使用while乱豆、each奖恰、reset、list遍歷
聯(lián)合while each reset list遍歷數(shù)組(半自動(dòng)方式)
each()--獲取當(dāng)前數(shù)組指針位置的鍵和值宛裕,并以關(guān)聯(lián)和索引兩種方式返回瑟啃,并且指針向下移動(dòng)一位。
reset()--將數(shù)組指針移至首位揩尸。
list()--直接解析賦過(guò)來(lái)的數(shù)組中的索引下標(biāo)對(duì)應(yīng)的值蛹屿,解析是從0開(kāi)始
<?php
$a = array("name" =>"zhangsan","age"=>22,"sex"=>"man" );
$res=each($a);
$res=each($a);
print_r($res);
//遍歷數(shù)組時(shí),先將指針移到數(shù)組的首位
reset($a); //將指針移到數(shù)組的首位
while($res=each($a)){
print_r($res);
//echo $res[0]."=>".[1]."\n";
}
while (list($k,$v)=each($a)) {
echo $k."=>".$v."\n";
}
使用函數(shù)來(lái)遍歷數(shù)組(純手工)
reset()-- 將數(shù)組的內(nèi)部指針指向第一個(gè)單元
end() — 將數(shù)組的內(nèi)部指針指向最后一個(gè)單元
next() — 將數(shù)組中的內(nèi)部指針向前移動(dòng)一位
prev() — 將數(shù)組的內(nèi)部指針倒回一位
current() — 返回?cái)?shù)組中的當(dāng)前單元
key() — 從關(guān)聯(lián)數(shù)組中取得鍵名
do....while循環(huán)
示例:
<?php
$a = array(10,20,30,40,50,60);
reset($a);//將數(shù)組指針移至首位
do{
echo key($a)."=>".current($a)."\n"; //獲取鍵和值
}while(next($a));
end($a);
do{echo key($a)."=>".current($a)."\n";
}while(prev($a));
數(shù)組的相關(guān)函數(shù)
- 數(shù)組的鍵和值得操作