php中比较两个数组内容,相同部分保留,不同的加上

来源:互联网 发布:百度云备案域名出售 编辑:程序博客网 时间:2024/05/17 23:03
Array ( [0] => Array ( [0] => 566 [v] =>566 [1] => 2.9.0-R-20140519.0458 [version] => 2.9.0-R-20140519.0458 ) 
[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();}}



0 0
原创粉丝点击