我试图解决的问题是这样的。比较数组中的人
我有一群人,一些人在这个数组中重复,但他们的细节并不总是完全一样,他们的名字有轻微的变化。所以我想要做的是循环所有的名字,比较名字的接近程度,然后比较他们的年龄和家乡。
后来,我希望创造一个新的数组,并说“这人还与以下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