如何计算键和值之间的差值在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
任何想法?
答
像这样的东西?
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)
你能修改你的问题,并添加你的PHP代码? – jhenderson2099
该行不会产生该错误。你是不是想回应那个差异? – deceze
你想要的输出是什么? – Philipp