Php 从大数据收集数据中筛选阵列
我有两个数组,一个是密钥集合,另一个是数据集合Php 从大数据收集数据中筛选阵列,php,Php,我有两个数组,一个是密钥集合,另一个是数据集合 $array1 = ['0'=>'A1','1'=>'A2','2'=>'A3']; 及 我想要这样的数据 $array = ['A1'=>'Data1','A2'=>'Data2','A3'=>'Data3'] 您可以为此使用: $my_array = ['A1'=>'Data1','A2'=>'Data2','A3'=>'Data3','A4'=>'Data4','A5'=>
$array1 = ['0'=>'A1','1'=>'A2','2'=>'A3'];
及
我想要这样的数据
$array = ['A1'=>'Data1','A2'=>'Data2','A3'=>'Data3']
您可以为此使用:
$my_array = ['A1'=>'Data1','A2'=>'Data2','A3'=>'Data3','A4'=>'Data4','A5'=>'Data5'];
$allowed = ['0'=>'A1','1'=>'A2','2'=>'A3'];
$filtered = array_filter(
$my_array,
function ($key) use ($allowed) {
return in_array($key, $allowed);
},
ARRAY_FILTER_USE_KEY
);
var_dump($filtered);
输出:
array(3) {
["A1"]=>
string(5) "Data1"
["A2"]=>
string(5) "Data2"
["A3"]=>
string(5) "Data3"
}
演示:
信用证:您也可以尝试此项,以获得您在问题中提到的
$array2
的确切数据
$array1 = ['0'=>'A1','1'=>'A2','2'=>'A3'];
$array2 = ['A1'=>'Data1','A2'=>'Data2','A3'=>'Data3','A4'=>'Data4','A5'=>'Data5'];
$ans = [];
foreach($array1 as $value)
{
if(isset($array2[$value]))
$ans[$value] = $array2[$value];
}
print_r($ans);
您可以将
$array1
设置为dic,然后检查dic中是否设置了输入$array2
$array1 = array_flip($array1);
$result = [];
foreach($array2 as $k => $v){
if(isset($array1[$k])){
$result[$k] = $v;
}
}
您应该更新问题中的代码以匹配演示。事实上,问题中的内容是行不通的。复制(IMHO)的最佳选项是
$output=array\u intersect\u key($array2,array\u flip($array1))
我刚刚键入了答案。同意奈杰尔的观点。
$array1 = array_flip($array1);
$result = [];
foreach($array2 as $k => $v){
if(isset($array1[$k])){
$result[$k] = $v;
}
}