gpt4 book ai didi

php - 合并两个数组,当前导子字符串相同时用第二个数组值覆盖第一个数组值

转载 作者:可可西里 更新时间:2023-11-01 00:24:33 25 4
gpt4 key购买 nike

我想合并两个包含文件列表及其括号中的修订的数组。

例如:

第一个数组:

['A[1]', 'B[2]', 'C[2]', 'D[2]']

第二个:

['B[3]', 'C[4]', 'E[4]', 'F[2]', 'G[2]']

就像我说的,我可以合并两个数组,但是用字母/文件名冲突的第二个数组中存在的数据覆盖第一个数组。

我使用这个正则表达式只抓取文件名(删除修订号)。我不知道我在这一点上是否正确:

/\[[^\)]+\]/

我正在寻找的结果是这样的,

['A[1]', 'B[3]', 'C[4]', 'D[2]', 'E[4]', 'F[2]', 'G[2]']

我目前正在使用 PHP4。

最佳答案

类似于:

function helper() {
$result = array();

foreach (func_get_args() as $fileList) {
foreach ($fileList as $fileName) {
list($file, $revision) = explode('[', $fileName, 2);
$revision = trim($revision, ']');
$result[$file] = !isset($result[$file]) ? $revision : max($result[$file], $revision);
}
}

foreach ($result as $file => $revision) {
$result[$file] = sprintf('%s[%s]', $file, $revision);
}

return array_values($result);
}

$a = array('A[1]', 'B[2]', 'C[2]', 'D[2]');
$b = array('B[3]', 'C[4]', 'E[4]', 'F[2]', 'G[2]');

print_r(helper($a, $b));

演示:http://codepad.org/wUMMjGXC

关于php - 合并两个数组,当前导子字符串相同时用第二个数组值覆盖第一个数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com