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);
?尝试文档中给出的示例。如果您在理解上有困难,请解释您的疑问,我将很乐意提供帮助