php數組函數執行個體教程詳解

來源:互聯網
上載者:User
  1. $arr=array("name"=>"user1","age"=>"30","sex"=>"man");

  2. foreach($arr as $key=>$val){
  3. $keys[]=$key;
  4. $vals[]=$val;
  5. }
  6. echo "
    ";  
  7. print_r($keys);
  8. echo "
  9. ";
  10. echo "";
  11. echo "
    ";  
  12. print_r($vals);
  13. echo "
  14. ";

  15. ?>

複製代碼

2.array_values的使用

  1. $arr=array("name"=>"user1","age"=>"30","sex"=>"man");
  2. $keys=array_values($arr);
  3. echo "
    ";  
  4. print_r($keys);
  5. echo "
  6. ";
  7. ?>
複製代碼

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();

  1. $arr=array("user1"=>70,60,80,78,34,34,34,56,78,78);
  2. function older($var){
  3. return ($var>60);
  4. }
  5. $arr2=array_filter($arr,"older");
  6. echo "
    ";  
  7. print_r($arr2);
  8. echo "
  9. ";
  10. ?>
複製代碼

2.array_map();引用參數:需求:數組值自加1

  1. function show(&$arr){
  2. foreach($arr as $key=>$val){
  3. $arr[$key]=$val+1;
  4. }
  5. }
複製代碼

數組的排序函數1.sort(); 升序,不保留key2.rsort(); 降序 ,不保留key3.asort(); 升序,保留key4.arsort(); 降序,保留key5.ksort();根據key排序 升序6.krsort();根據key排序 降序7.natsort();自然數排序 升序,比片img2.jpg8.natcasesort();忽略大小寫 升序排列9.multisort();多數組排序ksort();

  1. $arr=array("user1"=>10,"b"=>1,"c"=>3,"d"=>30);
  2. $arr2=array_flip($arr);
  3. ksort($arr2);
  4. echo "
    ";  
  5. print_r($arr2);
  6. echo "
  7. ";
  8. ?>
複製代碼

natsort();

  1. $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
  2. sort($array1);
  3. echo "Standard sorting\n";
  4. print_r($array1);
  5. natsort($array2);
  6. echo "\nNatural order sorting\n";
  7. print_r($array2);
  8. ?>
複製代碼

多數組排序:

  1. $arr=array("aaa","bbbbbbbbb","cc","ddddd");
  2. //需求:
  3. //1.按照標題長度排序
  4. //2.標題長度變成標題字串的key
  5. //將數組中的value的長度取出,並作為一個新數組
  6. //strlen($val)取出字串的長度
  7. foreach ($arr as $val) {
  8. $lens[]=strlen($val);
  9. }
  10. array_multisort($lens,SORT_ASC,$arr);//對數組進行排序,根據第一個數組來排序第二個數組 SORT_ASC表示升序排序
  11. sort($lens);
  12. $arr2=array_combine($lens, $arr);//第一個數組作為第二個數組對應的key,返回一個新數組
  13. echo "
    ";  
  14. print_r($arr2);
  15. echo "
  16. ";
  17. ?>
複製代碼

拆分,合并,分解與結合函數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();從最前的位置壓入一個值

  1. $str="php,js,html,ces,div";
  2. $arr=explode(",",$str);
  3. echo "
    ";  
  4. print_r($arr);
  5. echo "
  6. ";
  7. ?>
複製代碼

2.inplode();將數組組合成為字串

  1. $str="php,js,html,ces,div";

  2. $arr=explode(",",$str);
  3. $str2=implode("-",$arr);
  4. echo "
    ";  
  5. print_r($str2);
  6. echo "
  7. ";
  8. ?>

  9. $str="php,js,html,ces,div";

  10. $arr=explode(",",$str);
  11. $arr2=array_reverse($arr);//講數組中的值進行倒序
  12. $str2=implode("-",$arr2);
  13. echo "
    ";  
  14. print_r($str2);
  15. echo "
  16. ";
  17. ?>
複製代碼

array_slice();

  1. //截取總是從後往前截取
  2. $arr = array("aa","bb","cc","dd","ee","ff","gg");
  3. $arr2 = array_slice($arr, 0,2);//表示從0的位置截取2個 aa bb
  4. $arr3 = array_slice($arr, -3,2);//表示從後往前數到3的位置,開始截取2個//ee ff
  5. echo "
    ";  
  6. print_r($arr3);
  7. echo "
  8. ";
  9. ?>
複製代碼

不僅拆減,而且可以添加

  1. $arr = array("aa","bb","cc","dd","ee","ff","gg");
  2. $arr2 = array_splice($arr, 0, 3, array("hh","ii","jj","kk"));//直接取原數組的值,並將原數組進行改變,原數組為取走以後剩下的值
  3. echo "
    ";  
  4. print_r($arr2);
  5. echo "
  6. ";
  7. echo "
    ";  
  8. print_r($arr);
  9. echo "
  10. ";
  11. ?>
複製代碼

array_merge();

  1. $a = array("aa","bb","cc");
  2. $b = array("dd","ee","ff","gg");
  3. $arr = array_merge($a, $b);
  4. echo "
    ";  
  5. print_r($arr);
  6. echo "
  7. ";
  8. ?>
複製代碼

其他有用的數組處理函數:1.array_rand();//隨機取一個key2.range();//取出某個範圍的數組3.shuffle();//打亂數組的作用4.array_sum();//計算數組內所有人的和(計算總得分)如果計算數組的key之和,可以採用array_flip()對數組的健和值進行對調,然後就可以算出健之和.

  1. $arr = array("aa","bb","cc","dd","ee","ff","gg");

  2. //將原數組順序隨機打亂
  3. shuffle($arr);
  4. //取出數組的前3個
  5. $arr2= array_slice($arr, 0 , 3);
  6. echo "
    ";  
  7. print_r($arr2);
  8. echo "
  9. ";
  10. ?>
  11. //隨機輸出四位字元 驗證碼實現:

  12. //取出1-9 a-z A-Z的數組

  13. $a = range(1, 9);
  14. $b = range(a, z);
  15. $c = range(A, Z);
  16. //將3個數組合并
  17. $d = array_merge($a,$b,$c);
  18. //將合并後的數組打亂
  19. shuffle($d);
  20. //取合并後的前4位
  21. $e = array_slice($d, 0, 4);
  22. //將$e數組變為字串
  23. $f = join("", $e);
  24. echo $f;
  25. ?>

複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.