我試圖解決的問題是這樣的。比較數組中的人
我有一羣人,一些人在這個數組中重複,但他們的細節並不總是完全一樣,他們的名字有輕微的變化。所以我想要做的是循環所有的名字,比較名字的接近程度,然後比較他們的年齡和家鄉。
後來,我希望創造一個新的數組,並說「這人還與以下ID出現」 ...
我至今是一個冒泡排序,而如果我讓它運行長足夠我相信我能完成工作。我只是想看看是否有人有更好的解決方案?
<?php
$arr = [
[
'id' => '123',
'name' => 'gary strange',
'home' => 'london',
'age' => 23
],
[
'id' => '124',
'name' => 'john jones',
'home' => 'london',
'age' => 45
],
[
'id' => '125',
'name' => 'bob smith',
'home' => 'paris',
'age' => 63
],
[
'id' => '126',
'name' => 'g strange',
'home' => 'london',
'age' => 23
],
[
'id' => '127',
'name' => 'gary strange',
'home' => 'paris',
'age' => 23
],
[
'id' => '128',
'name' => 'g f. strange',
'home' => 'london',
'age' => 23
]
];
for($i = 0; $i < count($arr); $i++) {
echo "Getting details for " . $arr[$i]['name'] . "\n";
for($j = 0; $j < count($arr); $j++) {
if($j == $i) continue;
else{
echo "Comparing to " . $arr[$j]['name'];
$str1 = $arr[$i]['name'];
$str2 = $arr[$j]['name'];
similar_text($str1,$str2,$percent);
echo " - " . $percent . "%\n";
}
}
echo "******\n";
}
是僅限於PHP的解決方案,或者您可以使用任何系統來獲得解決方案。這是一個來自代碼的靜態數組,還是從數據庫中提取的這個數組。 – azngunit81