主要内容:
- 簡介
- 常用的方法
- 循環周遊數組
- PHP預定義數組
- 數組的處理函數
數組
PHP由于是弱類型的語言,他的變量類型是可以自由變換的,他的數組很自由,長度是可以動态增加的。
他的索引預設為數字0開始,另外有一個很強大的地方就是,他的數組可以和字典一樣,通過(key-value)鍵值對模式來存儲(厲害哦)
<?php
//聲明數組,并初始化
$xiaoli=array("小李",25,"男","google公司","[email protected]");
//輸出數組
print_r($xiaoli);
echo "<br/>";
$xiaobai[2]="小白";
$xiaobai[]=20;
$xiaobai[]="女";
$xiaobai[]="baidu公司";
$xiaobai[]="[email protected]";
//輸出數組
print_r($xiaobai);
echo "<br/>";
$bai["姓名"]="小白";
$bai['年齡']=20;
$bai['性别']="女";
$bai['公司']="baidu公司";
$bai['郵箱']="[email protected]";
//輸出數組
print_r($bai);
?>
輸出
Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google公司 [4] => [email protected] )
Array ( [2] => 小白 [3] => 20 [4] => 女 [5] => baidu公司 [6] => [email protected] )
Array ( [姓名] => 小白 [年齡] => 20 [性别] => 女 [公司] => baidu公司 [郵箱] => [email protected] )
使用數字作為key的叫做“索引數組”,使用其他作為key的叫做“關聯數組”,可以使用array在初始的時候就是預設使用索引,也可以制定為關聯數組。
<?php
//聲明 索引數組,并初始化
$xiaoli=array("小李",25,"男","google公司","[email protected]");
//輸出數組
print_r($xiaoli);
echo "<br/>";
//聲明 關聯數組,并初始化
$xiaoli=array("姓名"=>"小李","年齡"=>25,"性别"=>"男","google公司","[email protected]");
//輸出數組
print_r($xiaoli);
?>
Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google公司 [4] => [email protected] )
Array ( [姓名] => 小李 [年齡] => 25 [性别] => 男 [0] => google公司 [1] => [email protected] )
key也可以是變量,這樣更靈活
<?php
//聲明 索引數組,并初始化
$xiaoli=array("小李",25,"男","google公司","[email protected]");
//輸出數組
print_r($xiaoli);
echo "<br/>";
//聲明 關聯數組,并初始化
$xiaoli=array("姓名"=>"小李","年齡"=>25,"性别"=>"男","google公司","[email protected]");
//輸出數組
print_r($xiaoli);
$a="姓名";
echo "<br/>";
echo $xiaoli[$a];
$a="年齡";
echo "<br/>";
echo $xiaoli[$a];
?>
Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google公司 [4] => [email protected] )
Array ( [姓名] => 小李 [年齡] => 25 [性别] => 男 [0] => google公司 [1] => [email protected] )
小李
25
each($arr)傳回數組中目前指針的鍵值對
print_r($arr)輸出數組所有元素
var_dump($arr)輸出數組的所有元素以及類型資訊
list($a,$b)=array("小李",25,"男","google公司")這裡一次性給多個變量指派,$a="小李",$b=25;
這裡有3中方法來周遊數字
- for($i=0;$i<count($arr);$i++){}
- foreach($arr as $x=>$y){}
- while($v=each($arr)){}
foreach.php
<?php
//聲明 關聯數組,并初始化
$xiaoli=array("姓名"=>"小李","年齡"=>25,"性别"=>"男","google公司","[email protected]");
foreach($xiaoli as $a=>$b){
//each($xiaoli);
echo "數組中 $a 元素是 $b <br/>";
}
?>
數組中 姓名 元素是 小李
數組中 年齡 元素是 25
數組中 性别 元素是 男
數組中 0 元素是 google公司
數組中 1 元素是 [email protected]
貌似for循環隻能周遊純索引數組
for.php
<?php
//聲明 關聯數組,并初始化
$xiaoli=array("姓名"=>"小李","年齡"=>25,"性别"=>"男","google公司","[email protected]");
for($i=0;$i<count($xiaoli);$i++){
//each($xiaoli);
echo "數組中 ".$i."元素是 ".$xiaoli[$i]." <br/>";
}
?>
數組中 0元素是 google公司
數組中 1元素是 [email protected]
Notice: Undefined offset: 2 in C:\xampp\htdocs\demo2.php on line 7
數組中 2元素是
Notice: Undefined offset: 3 in C:\xampp\htdocs\demo2.php on line 7
數組中 3元素是
Notice: Undefined offset: 4 in C:\xampp\htdocs\demo2.php on line 7
數組中 4元素是
while_each.php
<?php
//聲明 關聯數組,并初始化
$xiaoli=array("姓名"=>"小李","年齡"=>25,"性别"=>"男","google公司","[email protected]");
while($v=each($xiaoli)){
echo "數組中 ".$v["key"]."元素是 ".$v["value"]." <br/>";
}
?>
數組中 姓名元素是 小李
數組中 年齡元素是 25
數組中 性别元素是 男
數組中 0元素是 google公司
數組中 1元素是 [email protected]
- $GLOBALS(包含了全部變量的全局組合數組)
- $_SERVER(頭資訊,路徑,腳本位置等資訊的數組)
- $_POST
- $_GET
- $_COOKIE
- $_SESSION
- $_REQUEST(預設情況下包含了$_POST,$_GET,$_COOKIE的數組)
array_sum($arr)傳回數組中所有value的值的和,字元串當做0
in_array($key,$arr)如果$key在$arr數組中,傳回true,否則傳回false
array_count_values($arr)用來統計所有值出現的次數
array_sum.php
<?php
//聲明 關聯數組,并初始化
$xiaoli=array("姓名"=>"小李","年齡"=>25,"性别"=>"男","google公司","[email protected]");
$a=array_sum($xiaoli);
echo $a;
?>
=>25
in_array.php
<?php
//聲明 關聯數組,并初始化
$xiaoli=array("姓名"=>"小李","年齡"=>25,"性别"=>"男","google公司","[email protected]");
findkey("小李",$xiaoli);
echo "<br/>";
findkey("小小",$xiaoli);
//在數組xiaoli中找key
function findkey($key,$xiaoli){
if(in_array($key,$xiaoli)){
echo "fund ".$key;
}else{
echo "not fund ".$key;
}
}
?>
fund 小李
not fund 小小
array_count_values.php
<?php
//聲明 關聯數組,并初始化
$xiaoli=array("姓名"=>"小李","姓名1"=>"小李","姓名2"=>"小李","姓名3"=>"小李",
"年齡"=>25,25,25,25,25,666,1,666,666,
"性别"=>"男","google公司","[email protected]");
print_r(array_count_values($xiaoli));
?>
Array ( [小李] => 4 [25] => 5 [666] => 3 [1] => 1 [男] => 1 [google公司] => 1 [[email protected]] => 1 )
ok數組的學習就到這裡。