Как получить процент разницы в строках JSON

Есть ли логика / алгоритм для сравнения двух строк 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}
]

Любое предложение будет высоко оценено.

-1

Решение

Я не получил именно то, что вы хотите сделать, но если вы просто хотите проверить сходство строк, вы можете использовать similar_text команда 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
0

Другие решения

Расстояние строки можно рассчитать с Левенштейн функция

Жаль, что он ограничен строками длиной не более 255 символов.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector