举例说明,$a、$b、$c 表示一维数组,$aa、$bb、$cc 表示二维数组。
1、$a + $b : $a 和 $b 的联合
不递归。只针对一维数组的相同的key进行合并,运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
2、$a == $b :如果 $a 和 $b 具有相同的键/值对则为 TRUE
3、$a === $b :如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE
4、$a != $b 不等 如果 $a 不等于 $b 则为 TRUE。和 $a <> $b,相同
5、$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE。
6、$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE。
7、array_merge 和 array_merge_recursive
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值(不会覆盖,以累加的方式合并)。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
array_merge_recursive() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去(不会覆盖,不断累加的方式合并),这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。
8、array_replace 和 array_replace_recursive
array_replace() 函数使用后面数组元素相同 key 的值替换 array1 数组的值。如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。如果一个键仅存在于第一个数组,它将保持不变。如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
array_replace() 是非递归的:它将第一个数组的值进行替换而不管第二个数组中是什么类型。
array_replace_recursive() 使用后面数组元素的值替换数组 array1 的值。 如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。 如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。 如果一个键仅存在于第一个数组,它将保持不变。 如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
array_replace_recursive() 是递归的:它将遍历数组并将相同的处理应用到数组的内部值。
如果数组 array1 中的值是标量,它的值将被第二个数组 array2 中的值替换,它可能是一个标量或者数组。如果 array1 和 array2 中的值都是数组,array_replace_recursive() 函数将递归地替换它们各自的值。
Pingback引用通告: PHP5、PHP7新增的知识点 | 精彩每一天