本文已参与【新人创作礼】活动 ,一起开启掘金创作之路
# 1、对数组键和值进行操作的函数
array_values
定义和用法
array_values() 函数返回数组中所有的值这些值以数组的形式呈现。
注释: 被返回的数组将使用数字键,从0开始且以步长1为递增基数
语法 array_values(array)
# 创建一个颜色数组
$color_arr = array('红', '蓝', '白', '紫', '黑');
dump($color_arr);
## 输出
array:5 [▼
0 => "红"
1 => "蓝"
2 => "白"
3 => "紫"
4 => "黑"
]
# 循环将数组置空
foreach ($color_arr as $i => $value) {
unset($color_arr[$i]);
}
dump($color_arr);
## 输出 []
# 新增一个元素(注意新增元素的键名是5,而不是0)
$color_arr[] = '绿';
dump($color_arr);
## 输出
array:1 [▼
5 => "绿"
]
# 重置键名(从0开始自增 步长为1):
$color_arr = array_values($color_arr);
$color_arr[] = '黄';
dump($color_arr);
## 输出
array:2 [▼
0 => "绿"
1 => "黄"
]
array_keys
定义和用法
array_keys() 函数返回包含数组中所有键名组成的一个新数组。
语法 array_keys(array,value,strict)
| 参数 | 描述 |
|---|---|
| array | 必需。规定数组 |
| value | 可选。您可以指定键值,然后只有该键值对应的键名会被返回 |
| strict | 可选。与 value 参数一起使用。可能的值:- true - 返回带有指定键值的键名。依赖类型,数字 5 与字符串 "5" 是不同的。- false - 默认值。不依赖类型,数字 5 与字符串 "5" 是相同的。 |
# 使用 value 参数:
$arr = array("中国"=>"红旗","德国"=>"大众","英国"=>"捷豹","日本"=>"丰田");
var_dump(array_keys($arr,"红旗"));
# 输出
array (size=1)
0 => string '中国' (length=6)
# 使用 strict 参数 (false):
$arr = array(666,888,520,"1314",1314);
var_dump(array_keys($arr,"1314",false));
# 输出
array (size=2)
0 => int 3
1 => int 4
# 使用 strict 参数 (true):
$arr = array(666,888,1314,"520",520);
# 输出
array (size=1)
0 => int 3
array_flip
定义和用法
# array_flip() 函数用于反转/交换数组中的键名和对应关联的键值
语法 array_flip(array)
## 数组去重
$arr = array ("id" => 1314, "id" =>1314, "name" => 'james');
$arr = array_flip(array_flip($arr));
var_dump($arr);
# 输出
array (size=2)
'id' => int 1314
'name' => string 'james' (length=5)
in_array
定义和用法
# in_array() 函数搜索数组中是否存在指定的值
语法
bool in_array ( mixed haystack [, bool $strict = FALSE ] )
| 参数 | 描述 |
|---|---|
| needle | 必需。规定要在数组搜索的值。 |
| haystack | 必需。规定要搜索的数组。 |
| strict | 可选。如果该参数设置为 TRUE,则 in_array() 函数检查搜索的数据与数组的值的类型是否相同。 |
$arr = array("Yao", "Wade", "Kobe", "James", 18);
# 例一 输出 boolean false
var_dump(in_array("18", $arr, true));
# 例二 输出 boolean true
var_dump(in_array(18,$arr, true));
# 例三 输出 boolean true
var_dump(in_array("Yao",$arr, true));
array_search
定义和用法
# array_search() 函数在数组中搜索某个键值,并返回对应的键名
语法 array_search(value,array,strict)
| 参数 | 描述 |
|---|---|
| value | 必需。规定在数组中搜索的键值。 |
| array | 必需。规定被搜索的数组。 |
| strict | 可选。如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素。可能的值: true false-默认 如果设置为 true,则在数组中检查给定值的类型,数字 5 和字符串 5 是不同的(参见实例 2) |
# 从数组中找到指定元素的位置的方法
$arr = array("Wade", "Kobe", "Yao", "James", 18);
$target = "Yao";
## foreach 循环查找
function searchByLoop($arr,$target){
foreach($arr as $key => $val){
if ($val == $target) {
return $key;
}
}
}
var_dump(searchByLoop($arr,$target));
# 输出 int 2
## array_search 函数
function searchByFunc($arr,$target){
return array_search($target,$arr);
}
var_dump(searchByFunc($arr,$target));
# 输出 int 2
## 通过array_flip键值反转查找
function searchByArrayFlip($arr,$target){
$arr = array_flip($arr);
return $arr[$target];
}
var_dump(searchByArrayFlip($arr,$target));
# 输出 int 2
array_key_exists
定义和用法
# array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false
语法 array_key_exists(key,array)
isset
定义和用法
# isset() 函数用于检测变量是否已设置并且非 NULL
语法 bool isset ( mixed ... ] )
注意
如果一次传入多个参数,那么 isset() 只有在全部参数都被设置时返回 TRUE,计算过程从左至右,中途遇到没有设置的变量时就会立即停止。
返回值 如果指定变量存在且不为 NULL,则返回 TRUE,否则返回 FALSE
# 针对变量的操作
$temp = '';
## 空字符串返回true
if (isset($temp)) {
echo "变量已设置." . PHP_EOL;
}
# 定义变量
$temp = "芭比Q了";$othertemp = "破防";
## 可以判断一个变量 也可以同时判断多个
var_dump(isset($temp)); ## boolean true
var_dump(isset($temp, $othertemp));## boolean true
## 对变量进行unset操作后再判断结果为false
unset ($temp);
var_dump(isset($temp)); ## boolean false
var_dump(isset($temp, $othertemp)); ## boolean false
## 如果变量直接为null 返回false
$temp = NULL;
var_dump(isset($temp));## boolean false
# 针对数组的操作
$tempArr = array ('spring' => 'green', 'summer' => 'red', 'autumn' => array('temp' => 'yellow'),'winter'=>null);
var_dump(isset($tempArr['spring'])); ## boolean true
var_dump(isset($tempArr['winter'])); ## boolean false
var_dump(isset($tempArr['autumn']['abc'])); ## boolean false
## array_key_exists() 与 isset() 的区别
#### 一个基本的区别是isset()可用于数组和变量,而array_key_exits()只能用于数组.
#### 但是最主要的区别在于在设定的条件下的返回值.
### array_key_exists() 会检查键的存在. 这个函数会返回true,只要键存在,即使值为null,也返回true.
$temp = array( "sweety"=>"王心凌", "classic"=>"twins", "other"=>null );
var_dump(array_key_exists("sweety", $temp)); ## boolean true
var_dump(array_key_exists("classic", $temp)); ## boolean true
var_dump(array_key_exists("other", $temp)); ## boolean true
### 和arrry_key_exitst()不同,isset()会同时检查键和值,只有当健存在,对应的值不为null的时候才会返回ture.
var_dump(isset($temp["sweety"])); ## boolean true
var_dump(isset($temp["classic"])); ## boolean true
var_dump(isset($temp["other"])); ## boolean false