<?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"
}
*/