Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获取JSON字符串差异百分比_Php_Json_Compare - Fatal编程技术网

Php 如何获取JSON字符串差异百分比

Php 如何获取JSON字符串差异百分比,php,json,compare,Php,Json,Compare,是否有任何逻辑/算法来比较两个JSON字符串的差异百分比。我试图用它来验证作为JSON字符串存储的签名 字符串1: [ {"lx":5,"ly":34,"mx":5,"my":33}, {"lx":5,"ly":34,"mx":5,"my":34}, {"lx":6,"ly":32,"mx":5,"my":34}, {"lx":7,"ly":31,"mx":6,"my":32}, {"lx":8,"ly":31,"mx":7,"my":31}, {"lx":9,"ly":

是否有任何逻辑/算法来比较两个JSON字符串的差异百分比。我试图用它来验证作为JSON字符串存储的签名

字符串1:

[
  {"lx":5,"ly":34,"mx":5,"my":33},
  {"lx":5,"ly":34,"mx":5,"my":34},
  {"lx":6,"ly":32,"mx":5,"my":34},
  {"lx":7,"ly":31,"mx":6,"my":32},
  {"lx":8,"ly":31,"mx":7,"my":31},
  {"lx":9,"ly":30,"mx":8,"my":31},
  {"lx":10,"ly":29,"mx":9,"my":30},
  {"lx":11,"ly":29,"mx":10,"my":29},
  {"lx":11,"ly":28,"mx":11,"my":29}
]
字符串2:

[
  {"lx":5,"ly":33,"mx":5,"my":32},
  {"lx":5,"ly":33,"mx":5,"my":33},
  {"lx":6,"ly":32,"mx":5,"my":33},
  {"lx":7,"ly":32,"mx":6,"my":32},
  {"lx":8,"ly":32,"mx":7,"my":32},
  {"lx":9,"ly":32,"mx":8,"my":32},
  {"lx":10,"ly":31,"mx":9,"my":32},
  {"lx":11,"ly":30,"mx":10,"my":31},
  {"lx":12,"ly":30,"mx":11,"my":30},
  {"lx":13,"ly":29,"mx":12,"my":30}
]

如有任何建议,将不胜感激

我并没有完全了解您想要做什么,但如果您只是想检查字符串的相似性,可以使用php命令

样本:

$str1 = '{"lx":5,"ly":34,"mx":5,"my":33},
  {"lx":5,"ly":34,"mx":5,"my":34},
  {"lx":6,"ly":32,"mx":5,"my":34},
  {"lx":7,"ly":31,"mx":6,"my":32},
  {"lx":8,"ly":31,"mx":7,"my":31},
  {"lx":9,"ly":30,"mx":8,"my":31},
  {"lx":10,"ly":29,"mx":9,"my":30},
  {"lx":11,"ly":29,"mx":10,"my":29},
  {"lx":11,"ly":28,"mx":11,"my":29}';

  $str2 = '{"lx":5,"ly":33,"mx":5,"my":32},
  {"lx":5,"ly":33,"mx":5,"my":33},
  {"lx":6,"ly":32,"mx":5,"my":33},
  {"lx":7,"ly":32,"mx":6,"my":32},
  {"lx":8,"ly":32,"mx":7,"my":32},
  {"lx":9,"ly":32,"mx":8,"my":32},
  {"lx":10,"ly":31,"mx":9,"my":32},
  {"lx":11,"ly":30,"mx":10,"my":31},
  {"lx":12,"ly":30,"mx":11,"my":30},
  {"lx":13,"ly":29,"mx":12,"my":30}';

  $percent = 0;

  echo similar_text($str1,$str2,$percent).' equal chars'.PHP_EOL;
  echo $percent.'% similarity';
给你:

269 equal chars
78.425655976676% similarity

可以使用该函数计算字符串距离


很遗憾,它被限制为长度不超过255个字符的字符串。

您能澄清一下您的问题吗?您的示例的预期结果是什么?实际上字符串1是我保存在数据库中的某些行(表示签名)的json表示形式。现在字符串2再次是类似的签名,可能会有一些小的变化,所以我只想比较字符串,这样系统就可以判断它是匹配的签名。这与我要查找的非常接近。谢谢你的建议。