PHP学习——数组处理函数(二)

  

<?php
/**
 * Created by phpstorm
 * Author: Aka
 * Date: 2019/12/7
 * Time: 19:10
 **/
//索引数组
$arr1 = array('this','is','first','array','!');
//关联数组
$arr2 = array('firstName'=>'Aka','lastName'=>'Jack','age'=>20,'address'=>"湖南湘潭");
$arr3 = array('iphoneX'=>5000,'mi9'=>4600,'iphone8'=>6000,'honor_v12'=>4396);
$arr4 = array('13'=>5000,26=>'Lx','ip'=>6000,'4396'=>'clearLove');
echo '获取数组中的键(不保持索引关系)','<br>';
$arr5 = array_keys($arr2);
var_dump($arr5);
/*
     array(4) {
          [0]=>
          string(9) "firstName"
          [1]=>
          string(8) "lastName"
          [2]=>
          string(3) "age"
          [3]=>
          string(7) "address"
    }
 */
echo '获取数组中的键(不保持索引关系)','<br>';
$arr6 = array_values($arr4);
var_dump($arr6);
/*
   array(4) {
      [0]=>
      int(5000)
      [1]=>
      string(2) "Lx"
      [2]=>
      int(6000)
      [3]=>
      string(9) "clearLove"
}
 */
echo '交换数组中键和值的位置,若重复前面的,会被后面的覆盖';
$arr7 = array_flip($arr3);
var_dump($arr7);
/*
     array(4) {
          [5000]=>
          string(7) "iphoneX"
          [4600]=>
          string(3) "mi9"
          [6000]=>
          string(7) "iphone8"
          [4396]=>
          string(9) "honor_v12"
    }
*/
echo '判断给定的值是否在数组中','<br>';
//返回一个布尔类型的值
$res = in_array('Jack',$arr2);
var_dump($res); // bool(true)


echo '搜索数组中的某个值,存在则返回它的键,不存在则返回false','<br>';
//方法一
$res1 = array_search('clearLove',$arr4);
echo '这是查找clearLove值返回的值:'.$res1,'<br>'; //这是查找clearLove值返回的值:4396
echo '给定键是否在数组中存在(返回一个布尔值)','<br>';
$res2=isset($arr4['4396']);
var_dump($res2);//bool(true)
echo '<br>';
//方法二
$re3 = array_key_exists('4396',$arr4);
//var_dump($re3);
echo '用array_key_exists()方法来判断数组$arr4中是否有相应的key,返回一个布尔类型','<br>',var_dump($re3);

//获取数组元素的个数
//方法一
$res4 = count($arr4);
echo '<br>',$res4,'<br>';   //4
//方法二
$res5 = sizeof($arr4);
echo $res5,'<br>';   //4

echo '修改数组键名的大小写','<br>';
//array_change_key_case($arr,CASE_LOWER(小写:0)/CASE_UPPER(大写:1))
$arr8 = array_change_key_case($arr4,1);
var_dump($arr8);
foreach ($arr8 as $k=>$value){
    echo '$arr key='.$k,'<br>';
}

$arr9 = array('Aka'=>'123','Jack'=>'123','con'=>'LX','abstract'=>'LX',1=>'lX',2=>'Lx',6=>'lx',777=>'zero',4396=>'zero');
var_dump($arr9);
//统计前
/*
 array(9) {
      ["Aka"]=>
                string(3) "123"
      ["Jack"]=>
                string(3) "123"
      ["con"]=>
                string(2) "LX"
      ["abstract"]=>
                string(2) "LX"
      [1]=>
                string(2) "lX"
      [2]=>
                string(2) "Lx"
      [6]=>
                string(2) "lx"
      [777]=>
                string(4) "zero"
      [4396]=>
                string(4) "zero"
}
 */
echo '<br>';
echo '统计数组中所有的值出现的次数,返回值是一个数组','<br>';
$arr10 = array_count_values($arr9);
var_dump($arr10);
//统计后生成的数组,被通缉的元素做键,统计的数字做值
/*
     array(6) {
          [123]=>
                int(2)
          ["LX"]=>
                int(2)
          ["lX"]=>
                int(1)
          ["Lx"]=>
                int(1)
          ["lx"]=>
                int(1)
          ["zero"]=>
                int(2)
    }
*/
echo '<br>';
foreach ($arr10 as $key=>$value){
    echo 'key='.$key,'->','value='.$value,'<br>';
}
//echo '弹出数组的最后一个元素','<br>';
$res6 = array_pop($arr4);
echo '弹出$arr4的最后一个元素$res6:';
var_dump($res6);
echo '将一个或多个单元压如数组的末尾','<br>';
array_push($arr1,'Aka','kaka','tian','dddd');
echo '在索引数组中压入','<br>';
var_dump($arr1);
echo '<br>';
array_push($arr4,'Aka','kaka','tian','dddd');
echo '在关联数组中压入','<br>';
var_dump($arr4);
echo '将一个或多个单元压如数组的首部','<br>';
array_unshift($arr4,'Aka','kaka','tian','dddd');
echo '在关联数组中压入','<br>';
var_dump($arr4);
/*
     array(11) {
          [0]=>
          string(3) "Aka"
          [1]=>
          string(4) "kaka"
          [2]=>
          string(4) "tian"
          [3]=>
          string(4) "dddd"
          [4]=>
          int(5000)
          [5]=>
          string(2) "Lx"
          ["ip"]=>
          int(6000)
          [6]=>
          string(3) "Aka"
          [7]=>
          string(4) "kaka"
          [8]=>
          string(4) "tian"
          [9]=>
          string(4) "dddd"
    }
*/
//将数组反序
$arr11 = array_reverse($arr2);
echo '<br>';
var_dump($arr2);
/*
 array(4) {
      ["firstName"]=>
      string(3) "Aka"
      ["lastName"]=>
      string(4) "Jack"
      ["age"]=>
      int(20)
      ["address"]=>
      string(12) "湖南湘潭"
}
*/
echo '<br>';
var_dump($arr11);
/*
    array(4) {
      ["address"]=>
      string(12) "湖南湘潭"
      ["age"]=>
      int(20)
      ["lastName"]=>
      string(4) "Jack"
      ["firstName"]=>
      string(3) "Aka"
    }
*/
echo '对数组中的所有值求和','<br>';
$res7 = array_sum($arr3);
echo '对$arr3的值求和后:'.$res7,'<br>';//19996
echo '对数组中的所有值求乘积','<br>';
$res8 = array_product($arr3);
echo '对$arr3的值求乘积后:'.$res8,'<br>';//6.06648E+14

//除去数组中重复的值
$arr12 = array_unique($arr9);
var_dump($arr12);
/*
 array(6) {
      ["Aka"]=>
      string(3) "123"
      ["con"]=>
      string(2) "LX"
      [1]=>
      string(2) "lX"
      [2]=>
      string(2) "Lx"
      [6]=>
      string(2) "lx"
      [777]=>
      string(4) "zero"
}
*/

echo '打乱数组$arr12','<br>';
$arr13 = shuffle($arr12); //返回值为一个布尔型
var_dump($arr12);
//打乱后的$arr12
/*
 array(6) {
      [0]=>
      string(3) "123"
      [1]=>
      string(2) "lX"
      [2]=>
      string(4) "zero"
      [3]=>
      string(2) "lx"
      [4]=>
      string(2) "LX"
      [5]=>
      string(2) "Lx"
}
*/
原文地址:https://www.cnblogs.com/kaka6k66k/p/12003161.html