【发布时间】:2019-10-18 05:39:55
【问题描述】:
我有两个string 类型的变量,结构如下:
echo $var_1;
"words" : [ "word A", "word B", "word C", "word D" ],
echo $var_2;
"words" : [ "word B", "word D", "word G", ],
字符串可以包含任意数量的单词,并且单词的结构没有规则。我要做的是根据两个变量之间是否存在一个或多个完全匹配的单词来编写条件语句。在上面的示例中,有两个匹配项:"word B" 和 "word D"。我追求的是这些方面的东西:
if ($matches > 0) {//some code}
关于如何定义$matches 有什么想法吗?
【问题讨论】:
-
这些是来自 json 的值吗?如果是 - 将它们解码为数组并执行
array_intersect. -
如果变量的类型是字符串,如果它们是从 json 获得的,或者我可以假装它是 json,这有关系吗?
-
字符串从何而来?它们看起来完全一样吗?那么它也不是有效的json。如果你可以解析字符串,给你一个单词数组,那将很容易解决。但由于它似乎是一些自定义(不一致)格式,所以会比较棘手。如果你可以控制字符串的格式,我会从那里开始。
-
@MagnusEriksson 它们来自更大的 json。我所做的只是它的两个子集,例如
$var_1 = $json_1[2];。然后上面是我运行echo $var_1;时得到的。 -
我不知道
$json_1[2]会给你什么,因为我不知道$json_1包含什么。但是,您在问题中发布的字符串不是有效的 json。$json_1是否包含正确的数据数组或是否包含字符串化的 json?它来自哪里?
标签: php string-matching