PHP中的similar_text函数在两个数组上的应用

4

我有两个大数组,包含类似以下的爬取产品名称和价格:

$one=array('grape'=>'0.40','apple'=>'1.20','banana'=>'1.80','lemon'=>'10.43');
$two=array('grappe'=>'1.20','kiwi'=>'7.54','banaana'=>'3.20','aubergine'=>'2.32');

我正在尝试使用similar_text函数来迭代数组,以返回密切匹配的键。例如,我想从上面的示例中提取“grappe”=>'1.20'和“banaana”=>'3.20'的值。
我不确定如何引用数组并将它们传递给类似文本函数,因为此函数仅接受字符串数据。我推断我需要使用foreach循环正确引用数组,并与similar_text函数结合使用if语句来指定两个匹配项之间所需的相似度百分比。
例如(在foreach循环内):
if ($result[] = (similar_text( $one, $two)) > 80) {
    var_dump($result[]);
}

你认为哪些条件是“类似”的? - Justin Wood
1个回答

2

similar_text( $one, $two)函数返回两个字符串中匹配字符的数量,要获取百分比,应该使用similar_text($one, $two, $percent);函数。

示例:

$one = array('grape' => '0.40','apple' => '1.20','banana' => '1.80','lemon' => '10.43');
$two = array('grappe' => '1.20','kiwi' => '7.54','banaana' => '3.20','aubergine' => '2.32');

$result = array();
foreach ( $one as $key => $value ) {
    foreach ( $two as $twoKey => $twoValue ) {
        similar_text($key, $twoKey, $percent);
        if ($percent > 80) {
            $result[$key] = array($value,$twoValue);
        }
    }
}

var_dump($result);

输出

array
  'grape' => 
    array
      0 => string '0.40' (length=4)
      1 => string '1.20' (length=4)
  'banana' => 
    array
      0 => string '1.80' (length=4)
      1 => string '3.20' (length=4)

1
谢谢,这个答案真的帮了我很多,非常感谢你在这里花费的时间和精力。 - Raj Gundu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接