Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP按另一个数组中的值筛选数组_Php_Arrays_Filter_Filtering_Array Filter - Fatal编程技术网

使用PHP按另一个数组中的值筛选数组

使用PHP按另一个数组中的值筛选数组,php,arrays,filter,filtering,array-filter,Php,Arrays,Filter,Filtering,Array Filter,我有这样一个数组: [ { "Firepack_sn":"20012205", "Installation_Date":"", "Type":"EH","Standard":"VAS", "Capacity_m3h":"81", "Pressure_bar":"3,4", "Rpm":"2930", "Power_kw":"72" }, { "Firepack_sn":"20023901", "Installat

我有这样一个数组:

[
  {
    "Firepack_sn":"20012205",
    "Installation_Date":"",
    "Type":"EH","Standard":"VAS",
    "Capacity_m3h":"81",
    "Pressure_bar":"3,4",
    "Rpm":"2930",
    "Power_kw":"72"
  },
  {
    "Firepack_sn":"20023901",
    "Installation_Date":"",
    "Type":"DH","Standard":"VAS",
    "Capacity_m3h":"195",
    "Pressure_bar":"4,2",
    "Rpm":"2000",
    "Power_kw":"72"
  }
]
[
  {
    "user_id":"40009",
    "firepack_id":"20012205",
    "activated":"1"
  },
  {
    "user_id":"40009",
    "firepack_id":"21020393",
    "activated":"0"
  }
]
[
  {
    "Firepack_sn":"20012205",
    "Installation_Date":"",
    "Type":"EH","Standard":"VAS",
    "Capacity_m3h":"81",
    "Pressure_bar":"3,4",
    "Rpm":"2930",
    "Power_kw":"72"
  }
]
像这样的阵列2:

[
  {
    "Firepack_sn":"20012205",
    "Installation_Date":"",
    "Type":"EH","Standard":"VAS",
    "Capacity_m3h":"81",
    "Pressure_bar":"3,4",
    "Rpm":"2930",
    "Power_kw":"72"
  },
  {
    "Firepack_sn":"20023901",
    "Installation_Date":"",
    "Type":"DH","Standard":"VAS",
    "Capacity_m3h":"195",
    "Pressure_bar":"4,2",
    "Rpm":"2000",
    "Power_kw":"72"
  }
]
[
  {
    "user_id":"40009",
    "firepack_id":"20012205",
    "activated":"1"
  },
  {
    "user_id":"40009",
    "firepack_id":"21020393",
    "activated":"0"
  }
]
[
  {
    "Firepack_sn":"20012205",
    "Installation_Date":"",
    "Type":"EH","Standard":"VAS",
    "Capacity_m3h":"81",
    "Pressure_bar":"3,4",
    "Rpm":"2930",
    "Power_kw":"72"
  }
]
现在我想过滤第一个数组,所以我只获取数组2中存在的具有Firepack\u sn的元素作为Firepack\u id

所以我希望输出如下:

[
  {
    "Firepack_sn":"20012205",
    "Installation_Date":"",
    "Type":"EH","Standard":"VAS",
    "Capacity_m3h":"81",
    "Pressure_bar":"3,4",
    "Rpm":"2930",
    "Power_kw":"72"
  },
  {
    "Firepack_sn":"20023901",
    "Installation_Date":"",
    "Type":"DH","Standard":"VAS",
    "Capacity_m3h":"195",
    "Pressure_bar":"4,2",
    "Rpm":"2000",
    "Power_kw":"72"
  }
]
[
  {
    "user_id":"40009",
    "firepack_id":"20012205",
    "activated":"1"
  },
  {
    "user_id":"40009",
    "firepack_id":"21020393",
    "activated":"0"
  }
]
[
  {
    "Firepack_sn":"20012205",
    "Installation_Date":"",
    "Type":"EH","Standard":"VAS",
    "Capacity_m3h":"81",
    "Pressure_bar":"3,4",
    "Rpm":"2930",
    "Power_kw":"72"
  }
]

我如何才能做到这一点?

这里有一个方法:

首先,您需要提取需要查找的firepack\u id,然后需要循环$arr1并检查firepack\u sn是否与之前提取的firepack\u id之一相同,如果是,则将其添加到数组中

$arr1 = json_decode('[{"Firepack_sn":"20012205","Installation_Date":"","Type":"EH","Standard":"VAS","Capacity_m3h":"81","Pressure_bar":"3,4","Rpm":"2930","Power_kw":"72","Pump_Type":"KSB KFP50-200","Motor_Type":"DOOSAN PU066 VAS/CEA","Controller_Type":"WB882-E10 VAS","Pump_sn":"085259","Motor_sn":"EARPA209635","Controller_sn":"","Servicelevel":"","Cust_id":"0","Cust_branche":"","Cust_name":"","Cust_address1":"","Cust_zipcode":"","Cust_city":"","Cust_country":"","Cust_Phone":"","Cust_coachlevel":"","Site_Name":"E-set","Site_address1":"","Site_address2":"","Site_address3":"","Site_zipcode":"","Site_city":"","Site_country":"","Site_contact":"","Site_phone":"","activated":"1"},{"Firepack_sn":"20023901","Installation_Date":"","Type":"DH","Standard":"VAS","Capacity_m3h":"195","Pressure_bar":"4,2","Rpm":"2000","Power_kw":"72","Pump_Type":"KSB KFP50-200","Motor_Type":"DOOSAN PU066 VAS/CEA","Controller_Type":"WB882-E10 VAS","Pump_sn":"085259","Motor_sn":"EARPA209635","Controller_sn":"","Servicelevel":"","Cust_id":"0","Cust_branche":"","Cust_name":"","Cust_address1":"","Cust_zipcode":"","Cust_city":"","Cust_country":"","Cust_Phone":"","Cust_coachlevel":"","Site_Name":"D-set","Site_address1":"","Site_address2":"","Site_address3":"","Site_zipcode":"","Site_city":"","Site_country":"","Site_contact":"","Site_phone":"","activated":"0"}]');

$arr2 = json_decode('[{"user_id":"40009","firepack_id":"20012205","activated":"1"},{"user_id":"40009","firepack_id":"21020393","activated":"0"}]');

$firepackIds = array();
foreach($arr2 as $item){
  $firepackIds[] = $item->firepack_id;
}

$goodRows = array();
foreach($arr1 as $item){
  if(in_array($item->Firepack_sn, $firepackIds)){
    $goodRows[] = $item;
  }
}

echo json_encode($goodRows);

希望这有帮助。

谢谢!你的答案不起作用,但经过一些小的修改就起作用了。编辑:$item->firpack_id;=$item['firpack\u id']$item->firpack\u sn=$item['firpack\u sn']@DNC什么不起作用了。我很难理解你的编辑,我怀疑其中的一些内容被删去了,你能给我发一个要点吗?这样我就可以更新我发布的内容了?