【发布时间】:2021-05-01 10:29:51
【问题描述】:
我需要你的 PHP 帮助 我有 2 个数组。 $old 数组有 5000 条记录 示例:
$old = Array
(
'branch' => Array
(
'1' => Array
(
'slug' => 'script',
'version' => '1.0.0',
'link' => 'oldfile'
),
'2' => Array
(
'slug' => 'pos',
'version' => '2.4.0',
'link' => 'oldfile'
),
'3' => Array
(
'slug' => 'stock',
'version' => '5.0.0',
'link' => 'oldfile'
),
'4' => Array
(
'slug' => 'sale',
'version' => '22.0.2',
'link' => 'oldfile'
),
)
);
新数组不多,可能只有 10-30 条记录
$new = Array
(
'branch' => Array
(
'1' => Array
(
'slug' => 'script',
'version' => '1.23.0',
'link' => 'newfile'
),
'2' => Array
(
'slug' => 'stock',
'version' => '5.9.0',
'link' => 'newfile'
),
)
);
我想比较旧数组和新数组的版本 并希望通过更改为新版本和链接来更新旧数组中的数据 示例新数组有可用的新版本和新的下载链接。
我需要得到这个结果的函数
$old = Array
(
'branch' => Array
(
'1' => Array
(
'slug' => 'script',
'version' => '1.23.0',
'link' => 'newfile'
),
'2' => Array
(
'slug' => 'pos',
'version' => '2.4.0',
'link' => 'oldfile'
),
'3' => Array
(
'slug' => 'stock',
'version' => '5.9.0',
'link' => 'newfile'
),
'4' => Array
(
'slug' => 'sale',
'version' => '22.0.2',
'link' => 'oldfile'
),
)
);
我正在使用
$result = array_replace_recursive($old, $new);
但它将全部替换为旧文件
【问题讨论】:
-
欢迎来到 Stack Overflow。虽然我们很乐意在您遇到困难时提供帮助,但您仍然需要自己努力找到解决方案。如果您写了一些东西,请编辑您的问题以显示您的代码并解释它在哪里以及如何准确地无法满足您的需求。
标签: php multidimensional-array compare