Php 从字符串中提取数组中找到的值
我被卡住了。我想做的是:在$description字符串中,我想检查是否可以找到不同数组中的任何值。如果有任何值匹配,我需要知道每个数组对应哪个值。我想我需要为每个$a、b和$c做一个函数,但我不知道如何做Php 从字符串中提取数组中找到的值,php,arrays,Php,Arrays,我被卡住了。我想做的是:在$description字符串中,我想检查是否可以找到不同数组中的任何值。如果有任何值匹配,我需要知道每个数组对应哪个值。我想我需要为每个$a、b和$c做一个函数,但我不知道如何做 if($rowGetDesc = mysqli_query($db_mysqli, "SELECT descFilter FROM tbl_all_prod WHERE lid = 'C2'")){ if (mysqli_num_rows($rowGetDesc) > 0){
if($rowGetDesc = mysqli_query($db_mysqli, "SELECT descFilter FROM tbl_all_prod WHERE lid = 'C2'")){
if (mysqli_num_rows($rowGetDesc) > 0){
while($esk= mysqli_fetch_array($rowGetDesc)){
$description = sanitizingData($esk['descFilter']);
$a = array('1:100','1:250','1:10','2');
$a = getExtractedValue($a,$description);
$b = array('one','five','12');
$b = getExtractedValue($b,$description);
$c = array('6000','8000','500');
$c = getExtractedValue($c,$description);
}
}
}
function getExtractedValue($a,$description){
?
}
如果有人能帮我做这件事,我将不胜感激
非常感谢Linda有一个返回布尔值的函数
或者,如果您想检查数组中的一个元素是否存在于描述中,可能需要对它们进行迭代
foreach($array as element){
if(preg_match("#".$element."#", $description){
echo "found";
}
}
试试这个
if(在数组中($str,$array)){
回显“它存在”;}其他{
回音“不存在”;}
如果您的问题措辞正确,并且确实在搜索字符串,则应尝试以下操作:
function getExtractedValue($a, $description) {
$results = array();
foreach($a as $array_item) {
if (strpos($array_item, $description) !== FALSE) {
$results[] = $array_item;
}
}
return $results;
}
函数将从字符串返回匹配短语的数组。最好只创建一次数组,而不是在while循环的每次迭代中创建。 此外,不建议在循环中使用相同的变量名
if($rowGetDesc = mysqli_query($db_mysqli, "SELECT descFilter FROM tbl_all_prod WHERE lid = 'C2'")){
if (mysqli_num_rows($rowGetDesc) > 0){
$a = array('1:100','1:250','1:10','2');
$b = array('one','five','12');
$c = array('6000','8000','500');
while($esk= mysqli_fetch_array($rowGetDesc)){
$description = sanitizingData($esk['descFilter']);
$aMatch = getExtractedValue($a,$description);
$bMatch = getExtractedValue($b,$description);
$cMatch = getExtractedValue($c,$description);
}
}
}
使用strpos查找字符串是否存在(或使用stripos进行不区分大小写的搜索)。看见如果字符串存在,它将返回数组中的匹配值:
function getExtractedValue($a,$description) {
foreach($a as $value) {
if (strpos($description, $value) !== false) {
return $value;
}
}
return false;
}
在数组中
,数组搜索
您希望得到什么结果?例如,如果描述为“它是1:250对比度和6000 lm”。我需要$a变量来提取1:250,以此类推。但我认为数组搜索是我正在寻找的for@viakondratiuk谢谢,array_search我想会的trick@user626342$description
是您在问题中指出的字符串吗?用户正在搜索字符串,而不是数组用户正在搜索字符串,而不是数组用户正在搜索代码。奇怪的是,我确实通过在数组中查找返回了值,而它可以通过$value
返回。