PHP中数组内部的匹配相似性
我有一个json文件,如下所示:PHP中数组内部的匹配相似性,php,json,match,Php,Json,Match,我有一个json文件,如下所示: { "results": [ { "category_id": 13732, "name": "Artificial Fruits & Vegetables", "category_tree": "Home, Garden & Pets > Home Furnishings &
{
"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.“
”;
向我们展示您的尝试,以及您的最佳尝试(代码)。什么不按预期工作?您是否有任何错误?建议阅读。问题更新所以,在循环中这样做,如果当前项目的百分比高于您以前的最高百分比,那么当前项目将成为您的新“最佳候选”。第一个匹配如何?如果没有,我如何将其与之前的匹配进行比较?如果之前的匹配为空,您只需要在逻辑中使用一个特殊情况-在这种情况下,当前项总是成为“顶部”项(显然)。