微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查与php中随机字符匹配的数组数据?

我有一个如下数组:
$fruits = array("apple","orange","papaya","grape")

我有一个如下变量:

$content = "apple";

我需要过滤一些条件,如:如果此变量与至少一个数组元素匹配,则执行某些操作.变量$content是一堆随机字符,实际上是数组数据中可用的一个,如下所示:

$content = "eaplp"; // it's a dynamically random char from the actual word "apple`

我做了什么就像下面这样:

$countcontent = count($content);

for($a=0;$a==count($fruits);$a++){

      $countarr = count($fruits[$a]);

      if($content == $fruits[$a] && $countcontent == $countarr){
          echo "we got".$fruits[$a];
      }

}

我试着计算这些短语有多少个字母,如果……其他……当字符串中的总字符与一个数组数据中的总字符匹配时,但是除此之外我还能做些什么吗?

我们可以使用in_array检查数组是否包含某个值.所以你可以检查你的$fruits数组是否包含字符串“apple”,
in_array("apple",$fruits)

返回一个布尔值.

如果字母的顺序是随机的,我们可以使用此函数按字母顺序对字符串进行排序:

function sorted($s) {
    $a = str_split($s);
    sort($a);
    return implode($a);
}

然后将此函数映射到您的数组并检查它是否包含已排序的字符串.

$fruits = array("apple","grape");
$content = "eaplp";
$inarr = in_array(sorted($content),array_map("sorted",$fruits));

var_dump($inarr);
//bool(true)

一个选择是array_search.使用array_search的好处是它返回项的位置(如果它在数组中找到,否则为false).

$pos = array_search(sorted($content),$fruits));

echo ($pos !== false) ? "$fruits[$pos] found." : "not found.";  
//apple found.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐