php中比较两个数组内容,相同部分保留,不同的加上
[1] => Array ( [0] => 443 [v] =>443 [1] => 2.9.1-R-20140520.0505 [version] => 2.9.1-R-20140520.0505 )
[2] => Array ( [0] => 618 [v] =>618 [1] => 2.9.1-R-20140521.0507 [version] => 2.9.1-R-20140521.0507 )
[4] => Array ( [0] => 557 [v] =>557 [1] => 2.9.1-R-20140527.0503 [version] => 2.9.1-R-20140527.0503 ) )
Array ( [0] => Array ( [0] => 2.9.0-R-20140519.0458 [version] => 2.9.0-R-20140519.0458 )
[1] => Array ( [0] => 2.9.1-R-20140520.0505 [version] => 2.9.1-R-20140520.0505 )
[2] => Array ( [0] => 2.9.1-R-20140521.0507 [version] => 2.9.1-R-20140521.0507 )
[3] => Array ( [0] => 2.9.1-R-20140522.1416 [version] => 2.9.1-R-20140522.1416 )
[4] => Array ( [0] => 2.9.1-R-20140526.0504 [version] => 2.9.1-R-20140526.0504 )
[5] => Array ( [0] => 2.9.1-R-20140527.0503 [version] => 2.9.1-R-20140527.0503 ) )
有上面两个数组,分别是$rlt和$rltVersion ,现在如果$rlt中的version在$rltVersion中不存在 再需要创建一个,其对应的v值设置为null串,代码如下:
$rlt_tmp = array(); if(count($rlt) < count($rltVersion)){ foreach($rltVersion as $singleObj){ $flag = true; $version_tmp = $singleObj["version"]; foreach($rlt as $obj){ if($version_tmp == $obj["version"]){ $flag = false; array_push($rlt_tmp, array("v"=>$obj["v"],"version"=>$obj["version"])); break; } } if($flag == true){ array_push($rlt_tmp, array("v"=>"null","version"=>$version_tmp)); } } }else{ $rlt_tmp = $rlt; }
Java的处理方式如下:
import java.util.ArrayList; import java.util.List; public class HjmTest { private static final String DEFAULT_VALUE = "0000"; /** * * 方法简述: * <p> * 方法详细描述<br> * @Author: owen * @Since: 2014-5-27 * @param args */ public static void main(String[] args) { HjmTest.doVersion(); } public static void doVersion(){ List<VersionBean> list = new ArrayList<VersionBean>(); VersionBean vb1 = new VersionBean(); vb1.setVersion("version1"); vb1.setValue("10001"); VersionBean vb2 = new VersionBean(); vb2.setVersion("version2"); vb2.setValue("10002"); VersionBean vb3 = new VersionBean(); vb3.setVersion("version3"); vb3.setValue("10003"); VersionBean vb4 = new VersionBean(); vb4.setVersion("version4"); vb4.setValue("10004"); VersionBean vb5 = new VersionBean(); vb5.setVersion("version5"); vb5.setValue("10005"); list.add(vb1); list.add(vb2); list.add(vb3); list.add(vb4); list.add(vb5); String[] arr = {"version0","version1","version2","version3","version4", "version5","version6","version7",}; System.out.println("比较前数据:"); for(VersionBean vBean : list){ System.out.println(vBean); } //针对不存在的 List<String> versionList = new ArrayList<String>(); for(String v:arr){ boolean flag = true; for(VersionBean vBean : list){ if(v.equals(vBean.getVersion())){ flag = false; break; } } if(flag){ versionList.add(v); } } for(String s : versionList){ VersionBean temp = new VersionBean(); temp.setVersion(s); temp.setValue(HjmTest.DEFAULT_VALUE); list.add(temp); } System.out.println("比较后数据:"); for(VersionBean vBean : list){ System.out.println(vBean); } } } class VersionBean { private String version; private String value; public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String toString(){ return "版本号:"+this.getVersion()+",版本值:"+this.getValue(); } }
- 上一篇: linux 后台运行php
- 下一篇: PHP函数之删除两个数组中相同的元素