数组(array)几乎存在于所有的编程语言中。不过,与Java、JavaScript等编程语言不同的是,在PHP中,数组还支持使用数组运算符来进行运算,就像做加法运算一样简单,并且显得非常优雅直观。
目前,PHP中的数组运算符如下表所示:
+:联合
==:相等
===:全等
!=或<>:不等于
!==:不全等
下面,我们结合具体的代码示例来逐个介绍PHP数组运算符。
联合(+)
联合,例如数组$a联合数组$b($a + $b),即是将数组$b中的元素附加到数组$a的后面,如果数组$b中某个元素的键名在数组$a中已经存在,则该元素被忽略掉(不需要附加),仍然使用数组$a中的元素。
<?php //设置编码为UTF-8,以避免中文乱码 header('Content-Type:text/html;charset=utf-8'); $a = array('name' => '张三', 'age' => 18, 'sex' => '男'); $b = array('name' => '李四', 'age' => 19 , 'country' => '中国'); $c = $a + $b; //由于数组$b中的键名name和age在数组$a中已经存在,因此联合的时候将会忽略掉数组$b中键名为name和age的元素。 print_r($c); //Array ( [name] => 张三 [age] => 18 [sex] => 男 [country] => 中国 ) ?>
接着,我们继续看下一个例子:
<?php //设置编码为UTF-8,以避免中文乱码 header('Content-Type:text/html;charset=utf-8'); $a = array('张三', 18, '男'); $b = array('李四', 19, '中国'); $c = $a + $b; //由于数组$a和数组$b,没有自定义键名,所以键名默认为索引数字,由于数组$b中的键名0、1、2在数组$a中都存在,所以$c实际上与$a一样。 print_r($c); //Array ( [0] => 张三 [1] => 18 [2] => 男 ) ?>
PHP数组的联合运算符会将符号右侧数组的元素附加到符号左侧数组的元素后面,因此如果交换符号两侧数组的位置,将会得到不一样的结果:
<?php //设置编码为UTF-8,以避免中文乱码 header('Content-Type:text/html;charset=utf-8'); $a = array('name' => '张三', 'age' => 18, 'sex' => '男'); $b = array('name' => '李四', 'age' => 19 , 'country' => '中国'); $c = $b + $a; //交换数组顺序 print_r($c); //Array ( [name] => 李四 [age] => 19 [country] => 中国 [sex] => 男 ) ?>
相等(==)
PHP数组运算符"=="可以用来判断两个数组中是否具有相同的键/值对,我们使用"=="来比较上述示例中的$a和$b是否相等:
<?php //设置编码为UTF-8,以避免中文乱码 header('Content-Type:text/html;charset=utf-8'); $a = array('name' => '张三', 'age' => 18, 'sex' => '男'); $b = array('name' => '李四', 'age' => 19 , 'country' => '中国'); var_dump($a == $b); //bool(false) ?>
此外,PHP数组运算符"=="并不强制要求元素的类型和顺序都要完全相同,例如:
<?php //设置编码为UTF-8,以避免中文乱码 header('Content-Type:text/html;charset=utf-8'); $a = array('name' => '张三', 'age' => '18'); $b = array('age' => 18, 'name' => '张三'); var_dump($a == $b); //输出:bool(true) $a = array('张三', '18'); //实际上是array( 0 =>'张三', 1 => '18') $b = array(18, '张三'); //实际上是array( 0 => 18, 1 => '张三') //数组$a和$b中,看似是两个元素的值交换了位置,实际上却导致对应的键名0、1的顺序也跟着改变,因此数组$a和$b没有相同的键/值对。 var_dump($a == $b); //输出:bool(false) ?>
全等(===)
PHP数组运算符"==="与"=="的作用很相似,不过全等运算符"==="只有在数组的键/值对、顺序、类型都完全相同时,才为true。因此,上面的例5如果使用全等运算符"==="将会得到相反的结果。
<?php //设置编码为UTF-8,以避免中文乱码 header('Content-Type:text/html;charset=utf-8'); $a = array('name' => '张三', 'age' => '18'); $b = array('age' => 18, 'name' => '张三'); var_dump($a === $b); //输出:bool(false) ?>
除上述运算符外,PHP数组运算符还有不相等(!=或<>)和不全等(!==),由于它们分别是相等(==)和全等(===)的取反判断,这里就不再赘述了。
相关推荐
在PHP编程语言中,数组运算符是处理和操作数组的关键元素。数组是一种数据结构,它允许存储多个值在一个单一的变量中,每个值都有自己的键或索引。本章将深入探讨PHP中的数组运算符以及`var_dump()`函数的详细用法。...
在PHP程序设计中,数组运算符是编程过程中不可或缺的一部分,特别是在处理数据集合时。文档"PHP程序设计-3期(KC016)2.5.8数组运算符常见问题.docx"似乎聚焦于两个特定的比较运算符:"==="和"!==",这两个运算符在...
在PHP编程语言中,数组运算符是用来操作和组合数组的关键元素。在这个课后习题中,我们关注的是联合运算符"+",它用于合并两个数组,创建一个不包含重复键的新数组。下面是对题目中代码的详细解释和分析: 首先,...
### 数组运算符 1. **加号 `+` 运算符:** 当使用加号运算符对两个数组进行操作时,它将合并两个数组的元素,但是如果键名在两个数组中都存在,那么来自左边数组的元素将会保留,而右边数组的同名键的元素将被忽略...
PHP的扩展, 可以跟PHP的数组,因为PHP的数组是使用哈希表的, 所以内存使用比较大, 所以我用红黑树来写了一个dict的结构, 内存使用比PHP的数组少一半以上, 查询速度基本上跟PHP的数组相当, 不过插入速度稍微慢PHP的...
1. **数组运算符** - 虽然题目中没有明确提及数组运算符,但在PHP中,数组运算符主要包括数组的合并(array_merge)、键值对合并(+)以及索引数组的连接(.)。不过,这个习题主要涉及的是算术运算符和逻辑运算符。...
PHP数组处理 PHP字符串操作 PHP文件系统操作 PHP日期与时间处理 PHP错误与异常处理 PHP面向对象编程 PHP类与对象 PHP继承与多态 PHP数据库操作 PHP与MySQL数据库连接 PHP安全与会话控制 PHP进阶:模板引擎与MVC框架 ...
这段代码首先创建一个Set,然后使用扩展运算符`...`将其转换回数组。Set的去重特性使得这种方法简洁而高效。 另一种JavaScript方法是使用filter配合indexOf: ```javascript let uniqueArray = array.filter((item...
2.6.7 数组运算符 2.6.8 类型运算符 2.6.9 错误控制运算符 2.6.10 执行运算符 2.6.11 运算符的优先级 2.7 流程控制 2.7.1 if结构 2.7.2 switch结构 2.7.3 while循环 2.7.4 for循环 2.7.5 foreach语句 2.7.6 ...
你可以直接用`==`运算符比较数组与NULL,但请注意,这种方式可能产生一些预期之外的结果,因为它还会在非NULL值且值为FALSE时返回TRUE。然而,对于NULL,它是有效的: ```php $array = NULL; if ($array == NULL) {...
PHP的数组运算符“+”可以用来联合两个(或多个数组)。 <?php header(content-type:text/html;charset=utf-8); $x = array(red, green,orange); $y = array(red,blue,yellow,cyan); $z = $x + $y; // $x 与 $...
除了使用`array_merge`之外,还可以使用加号运算符(`+`)来合并数组。这种方法在处理具有相同键名的数组时很有用,因为它保留了原有的键名。 **示例代码:** ```php $arr = [1 => "a", 3 => "b"]; $arr1 = [2 => "c...
首先,我们要了解的是PHP中的数组运算符`+`。当两个数组用`+`连接时,它会将第二个数组的所有元素添加到第一个数组中。如果两个数组中有相同的键,那么第一个数组的值会被保留,而第二个数组的相应键值不会覆盖第一...
在PHP中,比较运算符是编程中不可或缺的一部分,它们用于比较两个值并返回一个布尔结果,表示这两个值是否相等、不等、大于、小于、大于等于或小于等于。在PHP程序设计中,掌握比较运算符是理解逻辑控制流和数据处理...
相比之下,使用加号运算符(`+`)合并数组时,如果遇到相同数字键名,它会保留第一个出现的值,而忽略后续数组中相同键名的值。而对于字符串键名,加号运算符的行为与数字键名相同,会覆盖前一个值。例如: ```php ...
在处理多维数组时,"数组运算符"如`==`、`===`、`!=`、`!==`等可以用来比较两个数组是否相等。但需要注意的是,这些运算符在比较多维数组时可能不会考虑数组的顺序,因此在某些情况下,使用`array_diff`或`array_...
张三 三、数组运算 运算是通过运算符和数据实现的。数组作为一种复合数据类型,自然也可以进行运算,具体如表所示。 四、数组遍历 数组遍历是指依次访问数组中的每个元素,可以通过多种方法实现,具体如下所示。 1....
### PHP7 新特性详解:合并运算符与太空船运算符 #### 一、PHP合并运算符 在PHP 7.0版本中引入了一个新的运算符——NULL合并运算符(Null Coalescing Operator)。该运算符使用`??`作为符号,主要用于简化检查变量...