php 判断数组-PHP 字段并集与差异相交

点击进入“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);

php 判断数组_数组判断是否为空_数组判断是否重复

结果

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 )

数组判断是否为空_php 判断数组_数组判断是否重复

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

数组判断是否重复_数组判断是否为空_php 判断数组

返回上述元素的链表

链表之前有但没有,并保留上述元素的键值,根据字符串值判断相同,即(字符串)$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

php判断数组_数组判断回文数的算法_数组判断是否包含某元素


$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

数组判断回文数的算法_php判断数组_数组判断是否包含某元素

要确定元素是否在链表中,有三种方法可以找出: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]}}]}]