2017-10-05 55 views
0

我有兩個類型的數組:如何計算鍵和值之間的差值在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

回答

0

像這樣的東西?

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)); 
0

取決於你如何構建你的陣列,它應該工作。下面的代碼(根據你的問題)的工作:

<?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) 
相關問題