我有一个主数据源,它只按我需要的顺序包含姓氏。我已经抓取了一个目标来获取数组中无组织的全名列表。是否可以在last_names数组的前面添加基于相关姓氏的匹配名字前缀?
姓氏数组示例输出(我按需使用的数据)
$last_name_array[0] = "Jones"
$last_name_array[1] = "Jang"
$last_name_array[2] = "Smith Jr"
$last_name_array[3] = "Johnson"
$last_name_array[4] = "Wall"
$last_name_array[5] = "Doe"
全名数组示例输出(数据我必须填写姓名)
$full_name_array[0] = "John Smith Jr"
$full_name_array[1] = "R.A. Jones"
$full_name_array[2] = "Bob Johnson"
$full_name_array[3] = "Bing-Ho Jang"
$full_name_array[4] = "CA Doe"
$full_name_array[5] = "Eli Wall"
答案 0 :(得分:1)
是的,有可能。
假设这是您的有序姓氏列表:
$lastNames = [
"Doggett",
"Krycek",
"Mulder",
"Scully"
];
让我们进一步说这是你的全名无序列表:
$fullNames = [
"Dana Scully",
"Walter Skinner",
"John Doggett",
"Jeffrey Spender",
"Fox Mulder",
"Decoy Doe"
];
有很多方法可以解决这个问题,有些方法比其他方法更好 我将概述最天真(和缓慢)的解决方案,随时改进它。
$name
$lastNames
进行迭代
$name
,请检查它是否包含在$fullNames
$name
中的$lastNames
替换为$fullNames
在我们的案例中,这将产生:
$lastNames = [
"John Doggett",
"Krycek",
"Fox Mulder",
"Dana Scully"
];
注意您需要注意第2步,因为某人的名字可能与其他人的姓氏相似,反之亦然。因此,我建议您仅与全名的最后 n 字符进行比较,其中 n 是姓氏的长度。