如何计算键和值之间的差值在PHP

问题描述:

我有两个类型的数组:如何计算键和值之间的差值在PHP

1: 
$array1["a"][] = "value1"; 
$array1["a"][] = "value2"; 
$array1["b"][] = "value3"; 

2: 
$array2["0"] = "a"; 

我现在需要的是某种方式找到这两个阵列之间的差异。我需要通过key来过滤array1,它位于array2值中。我曾尝试做如下:

array_diff(array_keys($array1), array_values($array2)); 

但我得到在该行出现以下错误: ErrorException Array to string conversion

任何想法?

+0

你能修改你的问题,并添加你的PHP代码? – jhenderson2099

+3

该行不会产生该错误。你是不是想回应那个差异? – deceze

+0

你想要的输出是什么? – Philipp

像这样的东西?

foreach ($array1 as $key => $value) 
    if(array_search ($key , $array2)) 
    unset($array1[$key]); 

如果$ array1中需要有价值观,你只需把DIFF在$阵列1:

$array1 = array_diff(array_keys($array1), array_values($array2)); 

取决于你如何构建你的阵列,它应该工作。下面的代码(根据你的问题)的工作:

<?php 
$array1=array("a" => array(),"a" => array(),"b" => array()); 
$array2=array("0"=>"a"); 
print_r(array_keys($array1)); 
echo("<br/>"); 
print_r(array_values($array2)); 
echo("<br/>"); 
print_r(array_diff(array_keys($array1), array_values($array2)));  
> 

这导致:

Array ([0] => a [1] => b) 
Array ([0] => a) 
Array ([1] => b)