PHP中数组内部的匹配相似性

PHP中数组内部的匹配相似性,php,json,match,Php,Json,Match,我有一个json文件,如下所示: { "results": [ { "category_id": 13732, "name": "Artificial Fruits & Vegetables", "category_tree": "Home, Garden & Pets > Home Furnishings &

我有一个json文件,如下所示:

{
  "results": [
    {
      "category_id": 13732,
      "name": "Artificial Fruits & Vegetables",
      "category_tree": "Home, Garden & Pets > Home Furnishings & Decor > Artificial Plants & Flowers",
      "google_category": {
        "id": 6265,
        "tree": "Home & Garden > Decor > Artificial Flora",
        "name": "Artificial Flora",
        "level": 3
      }
    },
    {
      "category_id": 13981,
      "name": "Vegetables",
      "category_tree": "Home, Garden & Pets > Garden & Outdoor Living > Plants, Seeds & Bulbs > Outdoor Plants",
      "google_category": {
        "id": 6762,
        "tree": "Home & Garden > Plants > Indoor & Outdoor Plants",
        "name": "Indoor & Outdoor Plants",
        "level": 3
      }
    },
    {
      "category_id": 17779,
      "name": "Vegetables",
      "category_tree": "Food & Drink > Food Cupboard > Tins, Cans & Jars",
      "google_category": {
        "id": 5798,
        "tree": "Food, Beverages & Tobacco > Food Items > Fruit & Vegetables > Canned & Jarred Vegetables",
        "name": "Canned & Jarred Vegetables",
        "level": 4
      }
    },
    {
      "category_id": 17800,
      "name": "Vegetables",
      "category_tree": "Food & Drink > Frozen Food",
      "google_category": {
        "id": 5793,
        "tree": "Food, Beverages & Tobacco > Food Items > Fruit & Vegetables > Fresh & Frozen Vegetables",
        "name": "Fresh & Frozen Vegetables",
        "level": 4
      }
    },
    {
      "category_id": 17806,
      "name": "Vegetables",
      "category_tree": "Food & Drink > Fruit & Veg",
      "google_category": {
        "id": 430,
        "tree": "Food, Beverages & Tobacco > Food Items > Fruit & Vegetables",
        "name": "Fruit & Vegetables",
        "level": 3
      }
    }
  ]
  }
我想得到与此字符串最相关/最相似的类别

“Ocado自有品牌/水果、蔬菜和沙拉/蔬菜”

通过类别树或json中每个类别对象的名称进行匹配

请帮帮我,我是PHP新手

…更新

<?php
similar_text("Beverages & Tobacco > Food Items > Fruit & Vegetables > Fresh & Frozen Vegetables","Ocado Own-Label/Fruit, Vegetables & Salad/Vegetables",$percent);
echo $percent;
?>

我想使用类似的文本函数进行搜索,并返回最匹配的json对象/类别

$decode=json\u decode($json);
$decode = json_decode($json);
for($i=0; $i<count($decode->results); $i++){
    
    similar_text($decode->results[$i]->google_category->tree,"Ocado Own-Label/Fruit, Vegetables & Salad/Vegetables",$percent);
    $myarr[$i]=$percent;
}

$maxmatchcategory = array_search(max($myarr), $myarr);
echo $decode->results[$maxmatchcategory]->category_id.'<br>';

对于($i=0;$iresults)$(i++){ 类似的文本($decode->results[$i]->google_category->tree,“Ocado自有标签/水果、蔬菜和沙拉/蔬菜”,美元百分比); $myarr[$i]=$percent; } $maxmatchcategory=数组搜索(最大($myarr),$myarr); echo$decode->results[$maxmatchcategory]->category_id.“
”;
向我们展示您的尝试,以及您的最佳尝试(代码)。什么不按预期工作?您是否有任何错误?建议阅读。问题更新所以,在循环中这样做,如果当前项目的百分比高于您以前的最高百分比,那么当前项目将成为您的新“最佳候选”。第一个匹配如何?如果没有,我如何将其与之前的匹配进行比较?如果之前的匹配为空,您只需要在逻辑中使用一个特殊情况-在这种情况下,当前项总是成为“顶部”项(显然)。