您的位置:首页 > 其它

五、数组的定义、 数组函数

2016-04-12 21:59 232 查看
一、数组的定义
数组:变量存储的有序序列
$数组名称 = 数组的定义;// 2种形式
php中的数组包括2中数组类型
索引数组:
关联数组:

索引数组:下标为数字的数组。
$数组名称[下标] 下标 从0开始的数字,根据数字的不同,值不同

//索引数组定义
$arr[0]=123;
$arr[1]="liu";
$arr[2]="mia";
$arr[3]="china";
echo $arr[0]."<br/>";//返回123;
print_r($arr);//打印数组,返回Array ( [0] => 123 [1] => liu [2] => mia [3] => china )
echo count($arr);//返回数组个数,4
//关键词定义
$arr=array(123,"liu","mia","china");
echo $arr[0];//返回123
print_r($arr);//打印数组结构
echo count($arr);//打印数组个数


关联数组:下标为字符串的数组
$数组名称["下标"]
//关联数组定义
$arr["one"]="中国";
$arr["demo"]="美国";
$arr["test"]="法国";
$arr["un"]="英国";
echo $arr["one"];//返回中国
print_r($arr);//打印数组结构
echo count($arr);//打印数组个数
//array关键词定义
$arr=array("one"=>"中国","demo"=>"美国","test"=>"法国","un"=>"英国");
echo $arr["demo"];//返回美国
print_r($arr);//打印数组结构
echo count($arr);

二维数组:

//二维数据组定义
$arr=array(
array("中国","美国","法国","英国"),
array("张三","李四","王五"),
);
echo $arr[0][2];//[0]表示第0个数组,[2]表示第0个数组中第二个元素
print_r($arr);//返回Array ( [0] => Array ( [0] => 中国 [1] => 美国 [2] => 法国 [3] => 英国 ) [1] => Array ( [0] => 张三 [1] => 李四 [2] => 王五 ) )
echo count($arr);//返回2个数组


foreach 循环 遍历数组
格式:
foreach (数组名称 as $key=>$val){
循环体
}
$key 依次遍历数组的下标
$val 依次遍历数组的值
遍历:访问到数组中的每一个元素。
//foreach
$arr=array("张三","李鹏","王五","马六");
foreach($arr as $key=>$val){
echo $key."--->".$val."--->".$arr[$key]."<br/>";
}


数组函数
//count    int count(array  $arr); 返回数组的元素个数。
$arr=array("张三","李鹏","王五","马六");
echo count($arr);//返回4

//explode将字符串分割成数组
$str="a.class.php";
$exp=explode(".",$str);//"."表示以点来分割成数组
print_r($exp);//返回Array ( [0] => a [1] => class [2] => php )

//join  string join(string $flag,array $arr); 将数组以某个符号连接并返回字符串implode  别名
$arr=array("张三","李四","王五");
$str=join("#",$arr);//"#"表示将数组以#连接并返回字符串
echo $str;//返回结果:张三#李四#王五

//array_values  array array_values ( array $input ) 返回数组中所有的值,并由值组成的新的索引数组。
$arr=array("one"=>"中国","demo"=>"法国","test"=>"英国");
$txt=array_values($arr);
print_r($txt);//Array ( [0] => 中国 [1] => 法国 [2] => 英国 )

//array_keys 	array array_keys ( array $input ) 返回数组中所有的键名,并组成的新的索引数组。
$arr=array("one"=>"中国","demo"=>"法国","test"=>"英国");
$kName=array_keys($arr);
print_r($kName);//Array ( [0] => one [1] => demo [2] => test )

//array_pop  mixed array_pop ( array &$array ) 删除数组的最后一个元素,返回最后一个元素的值
$arr=array("one"=>"中国","demo"=>"法国","test"=>"英国");
$pop=array_pop($arr);
//echo $pop;//查看删除的最后一个元素值
print_r($arr);//Array ( [one] => 中国 [demo] => 法国 )

//list 	void list ( mixed $varname , mixed $... )  把数组中的值 赋给对应的变量,对关联无效 。 对索引有效。
$arr=array("中国","法国","英国");
list($name1,$name2,$name3)=$arr;
echo $name1;//中国,$name2返回法国,$name3返回英国
ps:如果某些值不用,用逗号分开。list($name1,,$name3)=$arr;

//next 下一个元素,pver上一个元素,end最后一个元素
$arr=array("中国","法国","英国");
echo next($arr);//将下标指向法国
echo prev($arr);//将下标指向中国
echo end($arr);//将下标指向英国

//in_array()  bool in_array ( mixed $needle , array $haystack  ) 检查数组中某个值是否存在
$arr=array("中国","法国","英国","韩国");
if(in_array("韩国",$arr)){
echo "韩国存在数组";
}else{
echo "韩国不在数组";
}//返回韩国存在数组

//array_reverse 	array array_reverse ( array $array ) 翻转数组排序
$arr=array("中国","法国","英国","韩国");
$brr=array_reverse($arr);
print_r($brr);//Array ( [0] => 韩国 [1] => 英国 [2] => 法国 [3] => 中国 )

//冒小泡排序
$brr = array(3,6,14,7,2,20,35);
for($i=0;$i<count($brr);$i++){
for($j=$i+1;$j<count($brr);$j++){
if($brr[$i]>$brr[$j]){
$tmps=$brr[$i];
$brr[$i]=$brr[$j];
$brr[$j]=$tmps;
}
}
}
print_r($brr);//Array ( [0] => 2 [1] => 3 [2] => 6 [3] => 7 [4] => 14 [5] => 20 [6] => 35 )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息