js php 数组比较

php 与 javascript 数组除了定义以及 操作上有很大的区别,还有很多其它的区别。现在我们就来讨论讨论。

1.大家都知道php比较两个数组是否全相等(值,索引)相等

  $a=array(1,2,3);
  $b=array(1,2,3);
  echo ($a==$b);  //output 是1
  如果是 javascript 呢:请看以下代码返回的:
  <script type="text/javascript">
      var a=['a','b','c'];
      var b=['a','b','c'];
      console.log(a==b);  //output 是false
  </script>

这是为什么呢?因为javascript 对象我们常成为引用类型,对象的比较均是引用的比较 ,当且它们引用同一基对象时,才相等。下面代码就是基于引用类型数组比较

      var a=['a','b','c'];
      var b=a;
      console.log(a==b);   //outupt 是true

2.php和javascript 关于把数组对象赋值给一个变量也是不一样的。javascrpt 仅仅赋值的是引用值,对象本省并没有复制一次,而php赋值的是一个副本。可能说的不够明白,请看代码:

<?php
 $a=array(1,2,3);
 $b=$a;
 $b[]=6;
 print_r($a);
 echo '<br/>';
 print_r($b);
 //Array ( [0] => 1 [1] => 2 [2] => 3 )
//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 6 )
  js代码:
      var a=['a','b','c'];
      var b=a;
      b[3]='d';
      console.log(a);
      console.log(b);
      //output
      //["a", "b", "c", "d"] index12.html:12
      //["a", "b", "c", "d"] index12.html:13
时间: 2024-10-09 23:42:44

js php 数组比较的相关文章

js 关联数组

踩得坑: JS ,通过 new Array()创建了一个数组: var param =  new Array();param["key1"] = value1;param["key2"] = value2;param["key3"] = value3; 打印  param.length 时 一直为0; 发现: js关联数组的属性:length,其数值记录的是key为整数的元素个数 当某元素key为字符串的时候,不计入length中. 办法: Ob

js删除数组元素中的指定值

js删除数组元素中的指定值:所谓删除数组元素中指定的值,就是删除具有指定的数组项,下面就通过实例代码代码介绍一下如何实现此功能.代码如下: var theArray=["蚂蚁部落",2,"青岛市南区","antzone","蚂蚁部落"]; for(var i=0;i<theArray.length;i++){ if(theArray[i]=="蚂蚁部落"){ theArray.splice(i,1);

js中数组去重的几种方法

js中数组去重的几种方法         1.遍历数组,一一比较,比较到相同的就删除后面的                 function unique(arr){                         for(var i=0;i<arr.length;i++){                                 for(var j=i+1;j<arr.length;j++){                                         if(ar

js删除数组里的某个元素

首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) return i; } return -1; }; 然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素:代码为: Array.prototype.remove = function(v

js,jQuery数组常用操作小结

一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); 结果 a:[2,3,4,5] b:1 (2) unshift:将参数添加到原数组开头,并返回数组的长度 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); 结果 a:[-2,-1,1,2,3,4,5] b:7 注:在IE6.0下测试返回值总为undefi

js去除数组中的重复值

hasOwnProperty(property) 方法 JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性. 使用方法: object.hasOwnProperty(proName) 其中参数object是必选项.一个对象的实例.proName是必选项.一个属性名称的字符串值. 如果 object 具有指定名称的属性,那么JavaScript中hasOwnProperty函数方法返回 true:反之则返回 false.此方法无法检查该对

[记录] js判断数组key是否存在

数组中判断key是否存在 可以通过arrayObject.hasOwnProperty(key)来进行判断数组key是否存在,返回的是boolean值,如果存在就返回true,不存在就返回false 和php中的array_key_exisits($key,$arr);的功能类似 参考:js判断数组key是否存在(不用循环)

JS 对象数组Array 根据对象object key的值排序sort,很风骚哦

有个js对象数组 var ary=[{id:1,name:"b"},{id:2,name:"b"}] 需求是根据name 或者 id的值来排序,这里有个风骚的函数 函数定义: function keysrt(key,desc) {   return function(a,b){     return desc ? ~~(a[key] < b[key]) : ~~(a[key] > b[key]);   } } 使用: var ary=[{id:1,nam

JS删除数组中的某个元素

首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: 1 Array.prototype.indexOf = function(val) { 2 for (var i = 0; i < this.length; i++) { 3 if (this[i] == val) return i; 4 } 5 return -1; 6 }; 然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素: 代码为: 1 Array.prototype.remo

Js删除数组重复元素的多种方法

js对数组元素去重有很多种处理的方法,本篇文章中为网络资源整理,当然每个方法我都去实现了:写下来的目的是希望自己活学活用,下次遇到问题后方便解决. 第一种 1 function oSort(arr){ 2 var result={}; 3 var newArr=[]; 4 for(var i=0;i<arr.length;i++){ 5 if(!result[arr[i]]){ 6 console.log(result[arr[i]]); //看看输出的是什么 7 newArr.push(arr