点击进入“PHP开源社区”
免费访问高级笔试、文档和视频资源
1. 工会array_merge
数字键值将附加在前面,不被覆盖,参考代码如下
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
结果
Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4 )
如果键名是数字,则前面的链表元素将附加到后面的链表,并重建索引
$array1 = array(1 => 2, 2 => 4, 3 => 6);
$array2 = array(1 => 1, 2 => 3, 3 => 5);
$result = array_merge($array1, $array2);
print_r($result);
结果
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 1 [4] => 3 [5] => 5 )
使用 + 运算符
使用 + 运算符合并链表将保留上述链表的键值,以及前面的链表
元素将附加到后面的链表旁边,但是当键值相同时,它会在上面的覆盖旁边。
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
$result = $array1 + $array2;
print_r($result);
结果
Array ( [0] => zero_a [2] => two_a [3] => three_a [1] => one_b [4] => four_b )
2. 交叉路口
array_intersect
第一个链表是主值,返回具有相同元素的值(从相同的元素字符串判断,即(字符串)$elem 1===(string)$elem 2),通配符保留第一个元素的通配符
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
结果
Array ( [a] => green [0] => red )
array_intersect_assoc
array_intersect_assoc除了检测元素值外,键值还将检测到,并且
将保留相同的元素,并且通配符对 key=>value 值中的两个值仅在 (字符串) $elem 1===(字符串)时被视为相等$elem 2
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red", 100 => 'a100');
$array2 = array("a" => "green", "b" => "yellow", "blue", "red", '100' => 'a100');
$result_array = array_intersect_assoc($array1, $array2);
print_r($result_array);
结果
Array ( [a] => green [100] => a100 )
3. 差分集
array_diff
返回上述元素的链表
链表之前有但没有,并保留上述元素的键值,根据字符串值判断相同,即(字符串)$elem 1===(字符串)$elem 2
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
结果
Array ( [1] => blue )
array_diff_assoc
array_diff_assoc 检测元素之外的键值php 判断数组,通配符对 key=>value 仅假定 (字符串) 中的两个值 $elem 1===(字符串$elem 2
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
结果
Array ( [b] => brown [c] => blue [0] => red )
再举一个例子
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
结果
Array ( [0] => 0 [1] => 1 )
*免责声明:本文整理于网络php 判断数组,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们进行删除或授权事宜。
END
PHP开源社区 扫描关注 进入”PHP资料“
免费获取进阶
面试、文档、视频资源
PHP 确定数组元素中是否存在字符串的三种方法 (in_arrayn
PHP 判断数组元素中是否存在字符串的三种方法(in_array、array_key_exists array_search) 分类:PHP_Python|发布:佚名|查看: |发布时间:2014/7/30n
方法 1:使用in_array(值、数组、类型)。n
类型是可选的。如果此参数设置为 true,它将检测搜索的数据是否与字段值的类型相同。n
代码如下:n
$arr = array('可以','如何','方法','知道','沒有','不要');
//in_array(value,array,type)
$isin = in_array("如何2",$arr);
if($isin){
echo "in====".$isin;
}else{
echo "out====".$isin;
}
n
方法2:n
array_key_exists 'array_key_exists() 函数确定字段中是否存在指定的键,如果键存在,则返回 true,否则返回 false。 array_key_exists(键,数组n
方法三:n
array_search() 函数与 in_array() 一样,在链表中查找通配符。如果找到该值,则返回匹配元素的键值。如果未找到,则返回 false。array_search(值、数组、严格),当数据量比较大时,用array_key_exists比较合适,但占用的视频内存比较大n
数组结构为:array(1,2php判断数组, 3, ..) 和 array(1 => true, 2 => false, ...),内存使用率为 1:2。n
具体来说涉及到内部实现,PHP中的第一和第二数据结构是相似的,它们都是关联的字段。n
其他补充:n
要确定元素是否在链表中,有三种方法可以找出:n
in_array' 函数在链表中搜索给定的值。 in_array(值,数组php判断数组,类型)类型是可选的。如果此参数设置为 true,则检测搜索的数据是否与链表的值属于同一类型。n
array_key_exists 'array_key_exists() 函数确定字段中是否存在指定的键,如果键存在则返回 true,否则返回 false。n
array_key_exists(键,数组)n
array_search 'array_search() 函数(如 in_array()))在链表中查找通配符。如果找到该值,则返回匹配元素的键值。如果未找到,则返回 false。n
array_search(值,数组,严格)n
从这个角度来看,当数据量不大,比如大于1000时,找哪一个用不会成为进退两难的;n
当数据量比较大时,使用array_key_exists更合适。n
当然,这里的array_key_exists占用的视频内存量比较大,已经测得了n
数组结构为:array(1, 2, 3, ..) 和 array(1 => true, 2 => false, ..)n
它们的内存使用率为 1:2;n
这与内部实现有关,实际上PHP中的第一和第二数据结构是相似的,都是关联的字段。n
喜欢n
据说听到好文章的人不转,服务器容易停机!n","to":"zh-Hans","sentLen":{"srcSentLen":[87,148,15,8,21,48,21,118,27,10,13,194,17,98,74,33,180,116,145,20,84,119,124,167,31,110,74,33,36,148,96,116,83,36,145,8,95],"transSentLen":[37,81,6,6,15,28,11,36,9,10,8,105,7,46,18,17,65,76,45,9,25,52,37,82,25,59,19,17,25,44,35,43,63,18,43,6,23]}}]}]
发表评论