Php 比较并用另一个数组替换值

Php 比较并用另一个数组替换值,php,arrays,Php,Arrays,我有以下阵列: $files = ['376840000000367020', '376840000000375036', '376840000000389001']; $arr = []; foreach ($files as $key => $name) { $arr[] = $name; } $data = [ '376840000000367020' => '5782', '376840000000375036' => '5783',

我有以下阵列:

$files = ['376840000000367020', '376840000000375036', '376840000000389001'];
$arr   = [];

foreach ($files as $key => $name) {
    $arr[] = $name;
}

$data = [
    '376840000000367020' => '5782',
    '376840000000375036' => '5783',
    '376840000000389001' => '5784',
];

print_r($arr);
这将返回:

Array ( [0] => 376840000000367020 [1] => 376840000000375036.... )
我想比较两个数组
$arr
$data
如果
$key
$arr
中找到
$data
替换值,我将尝试获得以下输出:

Array ( [0] => 5782 [1] => 5783 .... )
我有很多数据要比较,所以在foreach中迭代
$arr
并不理想


如何执行此操作?

迭代
$files
数组并检查值是否在
$data

foreach ($files as &$file) {
   if (isset($data[$file])) {
       $file = $data[$file];
   }
}
使用传递回调来检查值是否存在于第二个数组中,并在这种情况下返回其值,否则返回项。

您可以使用函数检查数组中是否存在键:

<?php

$files = ['376840000000367020','376840000000375036','376840000000389001'];

$data = array(
    '376840000000367020'  =>  '5782',
    '376840000000375036'  =>  '5783',
    '376840000000389001'  =>  '5784',
);

$arr = [];
foreach($files as $key=>$name){
    if(array_key_exists($name, $data)) {
        $arr[] = $data[$name];
    }
}


print_r($arr);

迭代$arr中的所有条目,如果是替换,检查当前条目是否存在于$data中,否则继续您的预期结果是什么?$arr应在$data中搜索是否存在匹配项$arr应将值替换为$data,即57825783 etcthanks谢谢您的帮助,但它不会给我任何输出,只是空白屏幕您是否执行
var\u dump($files);
?尝试文档中给出的示例。如果您在理解上有困难,请解释您的疑问,我将很乐意提供帮助