2017-06-12 107 views
-1

我有一個主要的數據源,其中只包含我需要的順序姓氏。我已經抓取了一個目標,以獲得一個陣列中的無組織名單。根據關聯姓氏,是否可以預先將具有匹配的full_names數組名稱的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" 
+4

需要顯示輸入數組和結果的例子。 – AbraCadaver

+1

是的,這是可能的。 ;-) – domsson

回答

1

是的,這是可能的。

比方說,這是你的命令最後的名單:

$lastNames = [ 
    "Doggett", 
    "Krycek", 
    "Mulder", 
    "Scully" 
]; 

讓我們進一步說,這是你的全名的無序​​列表:

$fullNames = [ 
    "Dana Scully", 
    "Walter Skinner", 
    "John Doggett", 
    "Jeffrey Spender", 
    "Fox Mulder", 
    "Decoy Doe" 
]; 

有很多辦法來解決這個,一些比別人好。
我要概要最天真(和緩慢)的解決方案,隨時改善它。

  1. 迭代中$lastNames
  2. 對於每個$name超過每$name,檢查其是否包含在$fullNames
  3. 如果是這樣,在$lastNames與入門從$fullNames

在更換$name我們情況下,這將產生:

$lastNames = [ 
    "John Doggett", 
    "Krycek", 
    "Fox Mulder", 
    "Dana Scully" 
]; 

注意你需要小心第2步,因爲某人可能有一個名字與其他人的姓氏相似,反之亦然。因此,我建議你只與最後一個n字符的全名相比較,其中n是姓氏的長度。