PHP数组

<?php
//索引数组
/*$a[0]=1;
$a[1]=2;
print_r($a);
$a[2]=4;
print_r($a);
$b[]=100;
$b[]=300;
$b[]=500;
print_r($b);
echo "<br/>".count($a);*/
//关联数组
/*$person[]='a001';
echo $person[0];
echo "<br/>";
$person['name']='tom';
$person['sex']='man';
$person['age']=23;
print_r($person);
echo $person['sex'];
$arr=array(1,2,'hello','world');
echo '<br/>';
print_r($arr);
$arr1=array("key"=>"B002","Val"=>345,"hello",2,"world");
echo '<br/>';
print_r($arr1);
echo '<br/>';*/
//多维数组
/*$onearr=array(1,2,3,4,5,6,7);
$twoarr=array("abc","xyz");
$threearr=array(1,"cc",2,"bb",3);
$arr=array($onearr,$twoarr,$threearr);
echo $arr[1][0];//输出该数组里索引数组里索引的值
echo "<br><hr/>";
echo print_r($arr);
//数组的遍历
$arr1=array("key"=>"B002","Val"=>345,"hello",2,"world");
foreach($arr1 as $item){
echo $item;
}
echo '<br/>';
//多维数组的遍历
$arr=array("hello"=>array(1,2,"aaa"=>3,4,"bbb"=>5,6),array("one","two"),array("a","1","b",2));
foreach($arr as $key=>$value){
foreach($value as $k=>$v){
echo "\$arr[".$key."][".$k."]=".$v."<br/>";
}
echo "<br/>";
}
//each()函数==>返回一个数组,1和value返回元素的值,0和key返回元素的下标
$arr1=array("key"=>"B002","Val"=>345,"hello",2,"world");
echo print_r(each($arr1));
echo '<br/>';
echo print_r(each($arr1));
echo '<br/>';
echo print_r(each($arr1));
echo '<br/>';
echo print_r(each($arr1));
echo '<br/><hr/>';
echo print_r(each($arr1));
echo '<br/><hr/>';*/
/*$arr=array("name"=>1,2,3,"haha"=>4,5,6,7);
echo print_r(each($arr)); //元素一的信息
echo "<br>";
echo print_r(each($arr)); //元素二的信息
echo "<br><hr/>";
//while-each()函数
while($a=each($arr)){
echo "下标:".$a[0]."|".$a["key"];
echo "值:".$a[1]."|".$a["value"];
echo "<br>";
}
echo "<br><hr/>";
$arr=array(1,2,3,4,5,6);
list($a,$b,$c,$d,$e,$f)=$arr;
echo $a.$b.$c.$d.$e;
echo "<br><hr/>";
$str="hh|jj|kk";
list($first,$last,$sec)=explode("|",$str);
echo $first.'===='.$last."====".$sec;
//数组操作函数
$arr=array("hello"=>"one","two","three",1,3,6,9,"four");
$a=current($arr);
$b=key($arr);
echo $a."<br/>";
echo $b."<br/>";
next($arr);//前进、下一个位置
$a=current($arr);
$b=key($arr);
echo $a."<br/>";
echo $b."<br/>";
end($arr);//最后一个位置
$a=current($arr);
$b=key($arr);
echo $a."<br/>";
echo $b."<br/>";
prev($arr);//后退、上一个位置
$a=current($arr);
$b=key($arr);
echo $a."<br/>";
echo $b."<br/>";
reset($arr);//第一个位置
$a=current($arr);
$b=key($arr);
echo $a."<br/>";
echo $b."<br/>";
//count() sizeof()==>获取数组的长度
$arr=array("hello"=>"one","two","three",1,3,6,9,"four");
echo count($arr)."<br/>";
echo sizeof($arr);
//array_change_key_case()==>改变目标数组索引的大小写
$arr=array("hello"=>"one","WWW"=>"two","xXx"=>"three",1,3,"four");
$newarr=array_change_key_case($arr,CASE_UPPER);//CASE_LOWER将数组的索引变成小写
print_r($newarr);
//array_chunk()==>将一个大的数组分解成为指定的小数组,分解后小数组的元素索引不变
$arr=array("hello"=>"one","WWW"=>"two","xXx"=>"three",1,3,6,9,"four");
$newarr=array_chunk($arr,3,true);
print_r($newarr);
//array_count_values()==>将目标数组中各个元素出现的的次数当做值来输出
$arr=array("hello"=>"one","WWW"=>"two","xXx"=>"three",1,3,1,1,3,1,3,5,9,5,"four");
$newarr=array_count_values($arr);
print_r($newarr);
//array_fill()==>通常用来初始化数组,用指定的元素索引、元素个数、元素值组成数组
$arr=array_fill(10,3,"zds");
print_r($arr);
//array_filter()加上自定义bool函数的真假来过滤数组的元素内容
$arr=array(1,-3,1,-1,3,-5,1,-5,9);
function fun1($value){
if($value>=0)
return true;
else
return false;
}
$newarr=array_filter($arr,fun1);
print_r($newarr);
//array_map()==>将某个数组里的元素以指定方法输出成一个集合的数组
function mp($n){
return $n*$n*$n;
}
$a=array(1,2,3,4,5);
$b=array_map(mp,$a);
print_r($b);
//array_flip()==>将目标数组中的索引和值做互换处理,也适用关联数组
$arr=array("one","two","three");
$newarr=array_flip($arr);
print_r($newarr);
//array_sum()==>计算数组中所有元素值的总和,字符当0处理
$arr=array("one","4two","three",1,3,2);
$newarr=array_sum($arr);
echo $newarr;
//array_unique()==>消除数组中重复的值,返回的数组中的元素都是唯一的
$arr=array("one","two","three","one","two",1,2,1);
$newarr=array_unique($arr);
print_r($newarr);
//array_values()==>去掉原有的键名重新用索引排列元素值形成新的数组
$arr=array("one"=>1,"two"=>2,"three"=>3,100=>"aaa",1000=>"abc");
$newarr=array_values($arr);//通常用来消除不连续的索引键,然后用循环处理数组
print_r($newarr);
//array_keys()==>将原数组中所有的下标(键)作为新数组的元素值用新的索引进行排列
$arr=array("one"=>1,"two"=>2,"three"=>3,100=>"aaa",1000=>"abc");
$newarr=array_keys($arr);
print_r($newarr);
//in_array()==>检查数组中是否存在指定的元素值,返回布尔结果
$arr=array("one"=>1,"two"=>2,"three"=>3);
if(in_array(4,$arr,true)){
echo "数据存在";
}else{
echo "数据不存在";
}
//array_search()同in_array()函数一样都是用来检查元素是否存在,不同的是返回结果
$arr=array("one"=>1,"two"=>2,"three"=>3,"four"=>2);
echo array_search(2,$arr,true);//返回该检查元素的下标(键)
//array_key_exists()==>检查一个下标(键)是否存在于数组中
//$arr=array(1,2,3,4,5,6,7,8);
$arr=array("one"=>1,"two"=>2,"three"=>3,"four"=>2);
var_dump(array_key_exists("four",$arr));
//extract()==>将数组里的下标转换为变量,输出该变量的值就是该下标所指向的元素值
$arr=array("one"=>1,"two"=>2,"three"=>3,4=>5);
extract($arr);//变量名不能以数字开头,所以只能用于关联数组的元素
echo $two;
//compact()函数==>将变量转换成数组,不存在该变量与之对应,则不转换
$one="aaa";
$two="bbb";
$three="ccc";
$arr=compact("one","two","three","four");
print_r($arr);
//array_push()函数==>按顺序将元素加入到数组,返回数组中的个数
$arr=array("one","two");
array_push($arr,"three","four");
array_push($arr,"five");
print_r($arr);
//array_pop()==>将数组中最后一个元素弹出(从原数组中删除)
$arr=array("one","two","three","four","five");
echo array_pop($arr)."<br>";
echo array_pop($arr)."<br>";
print_r($arr);
//array_unshift()==>在数组队列的开头插入元素,可以插入多个,方法返回插入后的数组长度
$arr=array("three","four","five");
echo array_unshift($arr,"one","two")."<br>";
print_r($arr);
//array_shift()==>吧数组最开始的元素弹出(从数组中删除),返回弹出的元素值
$arr=array("one","two","three","four","five");
echo array_shift($arr)."<br>";
print_r($arr);
//sort()函数==>将元素由小到大进行排序输出
$arr=array(1,3,5,7,9,6,8,2,4,0);
sort($arr);
print_r($arr);
//忽略键名的数组排序
sort();rsort();usort();
//保留键名的数组排序
asort();arsort();uasort();
//通过键名对数组进行排序
ksort();krsort();uksrot();
//自然排序法排序
natsort();natcasesort();
//将一个数组里的元素值合并到另一个数组中需给出对应的键名
$arr=array(1,2,3);
$brr=array(3=>4,4=>5,5=>6);
$crr=$arr+$brr;
print_r($crr);
//array_merge()直接合并指定数组,不用考虑索引的值,可以同时合并多个数组
$arr=array(1,2,3);
$brr=array(4,5,6);
$crr=array_merge($arr,$brr);
print_r($crr);
//array_diff()函数==>返回第一个数组与后面数组之间的差集
$arr=array(1,2,3,4,5,6,7);
$brr=array(1,2,3);
$crr=array(5,6,7);
$drr=array_diff($arr,$brr,$crr);
print_r($drr);
//array_intersect()函数==>把多个数组之间的交集(相同的元素)进行返回组成新的数组
$arr=array(1,2,3,4,5,6,7);
$brr=array(1,2,3);
$crr=array(2,3,4,5);
$drr=array_intersect($arr,$brr,$crr);
print_r($drr);
//array_rand()函数==>从数组中随机取出一个或多个元素,
$input=array("Neo","Morpheus","Trinity","Cypher","Tank");
$rand_kes=array_rand($input,2);
print $input[$rand_kes[0]]."\n";
print $input[$rand_kes[1]]."\n";*/

posted @ 2016-11-13 21:26  PHP_zhang  阅读(447)  评论(0)    收藏  举报