-
$arr=array("name"=>"user1","age"=>"30","sex"=>"man");
- foreach($arr as $key=>$val){
- $keys[]=$key;
- $vals[]=$val;
- }
- echo "
"; - print_r($keys);
- echo "
";
- echo "";
- echo "
"; - print_r($vals);
- echo "
";
-
?>
複製代碼
2.array_values的使用
- $arr=array("name"=>"user1","age"=>"30","sex"=>"man");
- $keys=array_values($arr);
- echo "
"; - print_r($keys);
- echo "
";
- ?>
複製代碼
array_values();//擷取數組中的值array_keys();//擷取數組中的健in_array();//檢查一個值是否在數組中array_key_exists();//檢查一個鍵是否在數組中array_flip();//鍵和值對調array_reverse();數組中的值反轉
統計數組的元素和唯一性1.count();2.array_count_values();//統計數組中每個值出現的次數.3.array_unique();//刪除數組中的重複使用回呼函數處理數組的函數:
1.array_filter();
- $arr=array("user1"=>70,60,80,78,34,34,34,56,78,78);
- function older($var){
- return ($var>60);
- }
- $arr2=array_filter($arr,"older");
- echo "
"; - print_r($arr2);
- echo "
";
- ?>
複製代碼
2.array_map();引用參數:需求:數組值自加1
- function show(&$arr){
- foreach($arr as $key=>$val){
- $arr[$key]=$val+1;
- }
- }
複製代碼
數組的排序函數1.sort(); 升序,不保留key2.rsort(); 降序 ,不保留key3.asort(); 升序,保留key4.arsort(); 降序,保留key5.ksort();根據key排序 升序6.krsort();根據key排序 降序7.natsort();自然數排序 升序,比片img2.jpg8.natcasesort();忽略大小寫 升序排列9.multisort();多數組排序ksort();
- $arr=array("user1"=>10,"b"=>1,"c"=>3,"d"=>30);
- $arr2=array_flip($arr);
- ksort($arr2);
- echo "
"; - print_r($arr2);
- echo "
";
- ?>
複製代碼
natsort();
- $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
- sort($array1);
- echo "Standard sorting\n";
- print_r($array1);
- natsort($array2);
- echo "\nNatural order sorting\n";
- print_r($array2);
- ?>
複製代碼
多數組排序:
- $arr=array("aaa","bbbbbbbbb","cc","ddddd");
- //需求:
- //1.按照標題長度排序
- //2.標題長度變成標題字串的key
- //將數組中的value的長度取出,並作為一個新數組
- //strlen($val)取出字串的長度
- foreach ($arr as $val) {
- $lens[]=strlen($val);
- }
- array_multisort($lens,SORT_ASC,$arr);//對數組進行排序,根據第一個數組來排序第二個數組 SORT_ASC表示升序排序
- sort($lens);
- $arr2=array_combine($lens, $arr);//第一個數組作為第二個數組對應的key,返回一個新數組
- echo "
"; - print_r($arr2);
- echo "
";
- ?>
複製代碼
拆分,合并,分解與結合函數1.explode();2.inplode();//join();3.array_slice();數組的截取4.array_splice();數組的裁剪5.array-merge();合并多數組6.array_combine();合并數組,兩個數組,前一個數組作為key,後一個數組作為value7.array_intersect();找出兩個數組的交集8.array_diff();找出兩個數組的不同,根據第一個參數9.array_pop();從最後彈出一個值,返回彈出值10.array_push();從最後的位置壓入一個值,返回元素的個數11.array_shift();從洗前面的位置刪除一個值12.array_unshift();從最前的位置壓入一個值
- $str="php,js,html,ces,div";
- $arr=explode(",",$str);
- echo "
"; - print_r($arr);
- echo "
";
- ?>
複製代碼
2.inplode();將數組組合成為字串
-
$str="php,js,html,ces,div";
- $arr=explode(",",$str);
- $str2=implode("-",$arr);
- echo "
"; - print_r($str2);
- echo "
";
- ?>
-
$str="php,js,html,ces,div";
- $arr=explode(",",$str);
- $arr2=array_reverse($arr);//講數組中的值進行倒序
- $str2=implode("-",$arr2);
- echo "
"; - print_r($str2);
- echo "
";
- ?>
-
複製代碼
array_slice();
- //截取總是從後往前截取
- $arr = array("aa","bb","cc","dd","ee","ff","gg");
- $arr2 = array_slice($arr, 0,2);//表示從0的位置截取2個 aa bb
- $arr3 = array_slice($arr, -3,2);//表示從後往前數到3的位置,開始截取2個//ee ff
- echo "
"; - print_r($arr3);
- echo "
";
- ?>
複製代碼
不僅拆減,而且可以添加
- $arr = array("aa","bb","cc","dd","ee","ff","gg");
- $arr2 = array_splice($arr, 0, 3, array("hh","ii","jj","kk"));//直接取原數組的值,並將原數組進行改變,原數組為取走以後剩下的值
- echo "
"; - print_r($arr2);
- echo "
";
- echo "
"; - print_r($arr);
- echo "
";
- ?>
複製代碼
array_merge();
- $a = array("aa","bb","cc");
- $b = array("dd","ee","ff","gg");
- $arr = array_merge($a, $b);
- echo "
"; - print_r($arr);
- echo "
";
- ?>
複製代碼
其他有用的數組處理函數:1.array_rand();//隨機取一個key2.range();//取出某個範圍的數組3.shuffle();//打亂數組的作用4.array_sum();//計算數組內所有人的和(計算總得分)如果計算數組的key之和,可以採用array_flip()對數組的健和值進行對調,然後就可以算出健之和.
-
$arr = array("aa","bb","cc","dd","ee","ff","gg");
- //將原數組順序隨機打亂
- shuffle($arr);
- //取出數組的前3個
- $arr2= array_slice($arr, 0 , 3);
- echo "
"; - print_r($arr2);
- echo "
";
- ?>
- //隨機輸出四位字元 驗證碼實現:
-
//取出1-9 a-z A-Z的數組
- $a = range(1, 9);
- $b = range(a, z);
- $c = range(A, Z);
- //將3個數組合并
- $d = array_merge($a,$b,$c);
- //將合并後的數組打亂
- shuffle($d);
- //取合并後的前4位
- $e = array_slice($d, 0, 4);
- //將$e數組變為字串
- $f = join("", $e);
- echo $f;
- ?>
複製代碼 |