1. array_keys:返回数组中所有键名的一个新数组,
//array_keys(array,value,strict)
$a=array("Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander");
print_r(array_keys($a));
//Array ( [0] => Volvo [1] => BMW [2] => Toyota )
?>
array_values():以获取数组中所有元素的值
$array = array(
'name' => 'C语言中文网',
'url' => 'http://c.biancheng.net/php/',
'info' => array(
'id' => 1234,
'article' => 'array_values() 函数'
)
);
print_r(array_values($array));
// 运行结果:
/* Array
(
[0] => C语言中文网
[1] => http://c.biancheng.net/php/
[2] => Array
(
[id] => 1234
)
) */
2.array_merge:把两个数组合并为一个数组;重构数组键值
/*array_merge(array1,array2,array3...)
array1 必需。规定数组。
array2 可选。规定数组。
array3 可选。规定数组...
*/
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_merge($a1,$a2));
//Array ( [0] => red [1] => green [2] => blue [3] => yellow )
$a=array("155151"=>"red",4=>"green");
print_r(array_merge($a));
//Array([0] => red [1] => green)
?>
3.sprintf:把百分号(%)变成一个作为参数用来传递数据的变量
– sprintf函数详解
指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。
$number = 2;
$str = "Shanghai";
$txt = sprintf("There are %u million cars in %s.",$number,$str);
echo $txt;
//There are 2 million cars in Shanghai.
?>
4.implode()和 explode()
- implode(): 把数组元素组合为一个字符串;
- explode():把一个字符串整合为一个数组,函数返回字符串的数组。
$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr);
//Hello World! Beautiful Day!
<?php
$str = "Hello world. I like php!";
print_r (explode(" ",$str));
//Array ( [0] => Hello [1] => world. [2] => I [3] => like [4] => php! )
//explode()更多实例用法
$requestData['list'] = "1,2,3,5,6,8"
$requestData['list'] = explode(",",$requestData['list']);
dump($requestData['list'] =);
//打印结果类似这种
array(16) {
[0] => string(1) "1"
[1] => string(1) "2"
...
注意:explode(separator,string,limit),limit可以限制个数
}
5.unset():用来销毁给定的变量
- 如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
// 销毁单个数组元素 unset ($bar[‘quux’]);
6.isset():检测变量是否设置
我的理解:PHP中empty、is_null、isset的区别
例子参考
123
7.reset():将内部指针指向数组中的第一个元素,并输出。
8.list():用于在一次操作中给一组变量赋值。
$my_array = array("Dog","Cat","Horse");
list($a, , $c) = $my_array;
echo "我在这里只用了 $a 和 $c 变量。";
//打印结果
我在这里只用了 Dog 和 Horse 变量。
9 .array_diff(),比较两个数组的差值,也可以用来去除数组中的某些特定值
<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);
print_r($result);
//执行结果
Array ( [d] => yellow )
//真用到了,去除数组中的某个值
$requestData = ['','1','2','全部'];
$requestData = array_diff($requestData, ["", '全部']);
dump($requestData );
//执行结果
array(2) {
[1] => string(1) "1"
[2] => string(1) "2"
}
?>
10.array_push,函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度
$json =array(2) {
[0] => array(11) {
["id"] => string(32) "e30f0029d61845bb9dc7e395b68b9d39"
["msisdn"] => string(11) "18754124756"
["executeWay"] => string(6) "系统"
["operatorCity"] => string(6) "济南"
["packageType"] => string(6) "月卡"
["cardEndDate"] => string(10) "2021-09-30"
}
[1] => array(11) {
["id"] => string(32) "f6c3b4be219411ec82590242ac11000b"
["msisdn"] => string(11) "18754124756"
["account"] => string(6) "test12"
["operatorCity"] => string(6) "济南"
["packageType"] => string(6) "月卡"
["cardEndDate"] => string(10) "2021-09-30"
}
}
$id = array();
//遍历数据,获取他们的id
foreach ($json_data as $value) {
array_push($id, $value['id']);
}
dump($id);exit();
//打印出来的结果
array(2) {
[0] => string(32) "e30f0029d61845bb9dc7e395b68b9d39"
[1] => string(32) "f6c3b4be219411ec82590242ac11000b"
}
11.strncmp(),比较两个字符串。
注释:strncmp() 是二进制安全的,且对大小写敏感。
<!DOCTYPE html>
<html>
<body>
<?php
echo strncmp("China","China",6);//0
echo "<br>";
echo strncmp("China","CHINA",6);//1
?>
</body>
</html>
12.substr() ,返回字符串的一部分。
substr(string,start,length)
参数 描述
- string 必需。规定要返回其中一部分的字符串。
- start 必需。规定在字符串的何处开始。 正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾开始的指定位置开始 0 - 在字符串中的第一个字符处开始
- length 可选。规定被返回字符串的长度。默认是直到字符串的结尾。 正数 - 从 start 参数所在的位置返回的长度 负数 - 从字符串末端返回的长度
<!DOCTYPE html>
<html>
<body>
<?php
echo substr("Hello world",0,10)."<br>";
echo substr("Hello world",1,8)."<br>";
echo substr("Hello world",0,5)."<br>";
echo substr("Hello world",6,6)."<br>";
echo substr("Hello world",0,-1)."<br>";
echo substr("Hello world",-10,-2)."<br>";
echo substr("Hello world",0,-6)."<br>";
echo substr("Hello world",-2-3)."<br>";
Hello worl
ello wor
Hello
world
Hello worl
ello wor
Hello
world
</body>
</html>
12,substr_replace(),函数把字符串的一部分替换为另一个字符串
echo substr_replace("Hello world","Shanghai",6);//输出:Hello Shanghai
//在 "world" 开头插入 "Hello":
echo substr_replace("world","Hello ",0,0);//Hello world
//一次性替换多个字符串。把每个字符串中的 "AAA" 替换成 "BBB":
$replace = array("1: AAA","2: AAA","3: AAA");
echo implode("<br>",substr_replace($replace,'BBB',3,3));
/*
1: BBB
2: BBB
3: BBB*/
13,mb_strlen()返回字符串的长度,
与 strlen 不同的时,它可以通过设置字符编码从而返回对应的字符数,很好的处理了中文字符串的长度问题。
if(isset($requestData['name']) && mb_strlen($requestData['name'],"utf-8") > 64){
return jsonReturn([], '最多可输入64个中文字符', 200);die;
}
14,php获取两个数组相同元素,array_intersect和array_intersect_assoc
- 这两个方法的功能基本一致,都是返回两个数组(也可以是多个数组)中都存在的元素,
- 不同的是,前者只考虑数组中元素的 value 一致就认为两者相同,而后者需要 key 和 value 都一致才认为两者相同
$array1 = array('1', 'a' => 'aaaaaa', 'b' => 'bbbbbb', 'c');
$array2 = array('a' => 'aaaaaa', 'c' => 'bbbbbb', 'c', '1');
var_dump(array_intersect($array1,$array2));
1
运行上面的代码会得到如下结果:
array(4) {
[0]=>
string(1) "1"
["a"]=>
string(6) "aaaaaa"
["b"]=>
string(6) "bbbbbb"
[1]=>
string(1) "c"
}
而使用方法 array_intersect_assoc()将会得到如下结果:
array(1) {
["a"]=>
string(6) "aaaaaa"
}
15,比较两个数组中的不同元素,array_diff和array_diff_assoc
- 这两个方法的基本功能也是一致的,返回第一个数组中有,但是其它数组没有的元素。
- 前者只比较值,后者同时比较 key 和 value。
<?php
$array1 = array('1', 'a' => 'aaaaaa', 'b' => 'bbbbbb', 'c');
$array2 = array('a' => 'aaaaaa', 'c' => 'bbbbbb', 'c', '1');
var_dump(array_diff($array1,$array2));
上面代码的运行结果为:
array(0) {
}
而如果把最后一行更换为 var_dump(array_diff_assoc($array1, $array2)); 将得到如下结果:
array(3) {
[0]=>
string(1) "1"
["b"]=>
string(6) "bbbbbb"
[1]=>
string(1) "c"
}
16. array_pop(),删除数组中的最后一个元素,返回值为被删除的元素
$a=array("red","green","blue");
print(array_pop($a))//blue
array_pop($a);
print_r($a);//red,green