牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2014-05-28 投稿人: 浏览次数:2211
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();
}
}



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。