"D", "-6ren">
gpt4 book ai didi

php - 通过关键交集创建搜索=>替换数组

转载 作者:搜寻专家 更新时间:2023-10-31 21:25:54 24 4
gpt4 key购买 nike

我有这个简单的 PHP 代码:

<?php

$string = "M - T - A - C - B - N - Z.";

$arrayOne = ["A", "B", "C", "D"];
$arrayTwo = ["D", "E", "F", "G"];


$length = count($arrayOne);
for ($i = 0; $i < $length; $i++){
$replacement[$arrayOne[$i]] = $arrayTwo[$i];
}

echo strtr($string, $replacement);

?>

这里我只是使用两个数组的数字索引来创建一个替换数组,我可以在 strtr() 中使用它。

$replacement = [
"A" => "D",
"B" => "E",
"C" => "F",
"D" => "G",
];

现在我想做同样的事情,只是针对两个数组具有相同键的值。

如果我有:

$k_1  = [ 
"hat" => "M",
"new" => "A",
"bad" => "B",
"hot" => "C",
"big" => "D"
];


$k_2 = [
"new" => "D",
"bad" => "E",
"hot" => "F",
"err" => "K",
"big" => "G"
];

我们通过两个数组的键得到以下交集:

[
"new",
"bad",
"hot",
"big",
]

现在我想再次使用第一个数组中的值和这些键作为搜索,第二个数组值作为替换,例如

$replacement = [
"A" => "D",
"B" => "E",
"C" => "F",
"D" => "G",
];

我现在需要如何修改我的代码,让它像这样执行?

最佳答案

从规范化数组开始

$kk_1=array_intersect($k_1, $k_2);
$kk_2=array_intersect($k_2, $kk_1);
ksort($kk_1);
ksort($kk_2);
$k_1=array_values($kk_1);
$k_2=array_values($kk_2);

然后像以前一样继续 - $k_1$k_2 将具有正确的值和顺序。

关于php - 通过关键交集创建搜索=>替换数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36231508/

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