php数组详解
php中的常用函数如下
$arr=array(1,243,45,346,34,5,3,1,346,342,346,'飞机','飞机'); sort($arr);//从小到大的顺序排序 print_r($arr); rsort($arr);//从大到小的顺序排序 print_r($arr); $arr2=array_count_values($arr);//获取数组中元素出现的次数; asort($arr2);//对数组排序,保持索引关系 arsort($arr2);//对数组排序保持索引关系 in_array('246',$arr);//检查数组中是否存在给定的值 array_unique($arr);//删除数组中重复的值,并重新建立索引 //array_key_exists() 检查键名称是否存在索引中,count()得到数组的长度,如果得到字符串长度用strlen print_r($arr2); print_r($arr); exit;
//按照二维数组其中的一项值进行排序,实例如下;
$a=gettimeofday(true); $arra[0]=array('age' => 80,'sex' => 'femail','zhiye' => 'gcs'); $arra[1]=array('age' => 60,'sex' => 'mail','zhiye' => 'ui'); $arra[2]=array('age' => 87,'sex' => 'femail','zhiye' => 'g11cs'); $arra[3]=array('age' => 70,'sex' => 'mail','zhiye' => 'sdf'); $arra[4]=array('age' => 89,'sex' => 'femail','zhiye' => 'dfgs'); $arra[5]=array('age' => 20,'sex' => 'mail','zhiye' => '646'); $arrb=array(); foreach($arra as $key => $value) { $arrb[$key]=$value['age']; } array_multisort($arrb, SORT_ASC, $arra);//如果是从大到小的顺序,则SORT_DESC; print_r($arra);//用如下方法也行,但是会稍微慢点 /* asort($arrb); $arrc=array(); foreach($arrb as $key => $value) { $arrc[]=$arra[$key]; } */
下面的代码表示,删除一个数组元素,并且重新建立索引;
$arr=array('a' => 'qqqf','b' => 'sdf','c' => '23sd'); $result=array_splice($arr,1,1);//第二个参数表示从第二项开始删除(包括第二项),第三个参数表示删除1个元素,并且把删除后的新数组重新建立索引; print_r($result);//返回删除的数组元素,是一个数组 print_r($arr);exit;//返回删除后的新数组;
////////////////////////////////////////////////
unset($arr['b']);
print_r(array_merge($arr));//这个代码也可以重新建立索引,但是速度比上面的会稍微慢些
下面的实例为,如果两个数组中有一项相同,需要按照这个共同项合并时用到
$arra[0]=array('uid' =>1,'age' => 80,'sex' => 'femail','zhiye' => 'gcs'); $arra[1]=array('uid' =>2,'age' => 60,'sex' => 'mail','zhiye' => 'ui'); $arra[2]=array('uid' =>3,'age' => 87,'sex' => 'femail','zhiye' => 'g11cs'); $arra[3]=array('uid' =>4,'age' => 70,'sex' => 'mail','zhiye' => 'sdf'); $arra[4]=array('uid' =>5,'age' => 89,'sex' => 'femail','zhiye' => 'dfgs'); $arra[5]=array('uid' =>6,'age' => 20,'sex' => 'mail','zhiye' => '646'); $arrb[0]=array('uid' =>1,'age2' => 180,'sex2' => '2femail','zhiye2' => '2gcs'); $arrb[1]=array('uid' =>2,'age2' => 160,'sex2' => '2mail','zhiye2' => '2ui'); $arrb[2]=array('uid' =>3,'age2' => 187,'sex2' => '2femail','zhiye2' => '2g11cs'); $arrb[3]=array('uid' =>4,'age2' => 170,'sex2' => '2mail','zhiye2' => '2sdf'); $arrb[4]=array('uid' =>5,'age2' => 189,'sex2' => '2femail','zhiye2' => '2dfgs'); $arrb[5]=array('uid' =>6,'age2' => 120,'sex2' => '2mail','zhiye2' => '2646'); foreach($arra as $key => $value) { $arr[$key]=array_merge($arra[$key],$arrb[$key]);//将两个数组合并为一个数组,如果键值相同,则第一个数组的键值会被覆盖; } print_r($arr);exit;