"Bl","Taste"=>"Go-6ren">
gpt4 book ai didi

字符串中的 PHP 数组值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:33:46 26 4
gpt4 key购买 nike

我已经在 PHP 手册中查找了一段时间,但找不到任何可以执行我想要的操作的命令。

我有一个包含键和值的数组,例如:

$Fields = array("Color"=>"Bl","Taste"=>"Good","Height"=>"Tall");

然后我有一个字符串,例如:

$Headline = "My black coffee is cold";

现在我想知道是否有任何数组 ($Fields) 值与字符串 ($Headline) 中的某处匹配。

例子:

Array_function_xxx($Headline,$Fields);

会给出 true 的结果,因为“bl”在字符串 $Headline 中(作为“Black”的一部分)。

我问是因为我需要性能...如果这不可能,我将只创建自己的函数...

编辑 - 我正在寻找类似 stristr(string $haystack , array $needle);

谢谢

解决方案 - 我想到了他的功能。

function array_in_str($fString, $fArray) {

$rMatch = array();

foreach($fArray as $Value) {
$Pos = stripos($fString,$Value);
if($Pos !== false)
// Add whatever information you need
$rMatch[] = array( "Start"=>$Pos,
"End"=>$Pos+strlen($Value)-1,
"Value"=>$Value
);
}

return $rMatch;
}

返回的数组现在包含有关每个匹配单词开始和结束位置的信息。

最佳答案

这应该有帮助:

function Array_function_xxx($headline, $fields) {
$field_values = array_values($fields);
foreach ($field_values as $field_value) {
if (strpos($headline, $field_value) !== false) {
return true; // field value found in a string
}
}
return false; // nothing found during the loop
}

用你需要的替换函数的名称。

编辑:

好的,替代解决方案(可能提供更好的性能,允许不区分大小写的搜索,但需要 $fields 参数中的正确值)是:

function Array_function_xxx($headline, $fields) {
$regexp = '/(' . implode('|',array_values($fields)) . ')/i';
return (bool) preg_match($regexp, $headline);
}

关于字符串中的 PHP 数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5927602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com