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函数之删除两个数组中相同的元素
