简化如何调用函数PHP

简化如何调用函数PHP,php,arrays,string,if-statement,Php,Arrays,String,If Statement,我有代码来替换数组中包含的单词。代码正常,但首先有问题,代码太长,我不能重复代码(在第页中调用结果两次或更多次)。我想简化如何调用函数,并可以重复调用结果。这是我的密码: $str = 'APPLE'; $fruits = array('APPLE', 'BANANA', 'AVOCADO'); $string = $str; foreach ($fruits as $url) { if (strpos($string, $url) !== FALSE) { echo "

我有代码来替换数组中包含的单词。代码正常,但首先有问题,代码太长,我不能重复代码(在第页中调用结果两次或更多次)。我想简化如何调用函数,并可以重复调用结果。这是我的密码:

$str = 'APPLE';
$fruits = array('APPLE', 'BANANA', 'AVOCADO');
$string = $str;
foreach ($fruits as $url) {
    if (strpos($string, $url) !== FALSE) {
        echo "FRUIT";
        return true;
    }
}

echo $string;return false;

对于该代码,我只想使用
$group
调用结果。谢谢大家…

第一件事

您已经将
$str
定义为“苹果”,然后将
$string
定义为
$str
,为什么不直接将
$string
定义为“苹果”

第二件事

您需要使用函数,将代码存储为函数意味着您可以再次调用它,而无需重新编写所有代码,请参见下面的示例:

function FindFruit($find, $haystack) {

    foreach($haystack as $k => $v) {

        $result = (strpos($v, $find) !== false ? true : false);

        if($result == true) return 'FRUIT';

    }

    return $find;

}

$fruits = array('APPLE', 'BANANA', 'AVOCADO');
$string = 'APPLE';

$result = FindFruit($string, $fruits);

echo $result;

以下是我的答案,基于上次的评论:


您好,谢谢您的评论。是的,我还是一个新手,当然缺乏PHP知识。。。呵呵,我的例子$str是一个世界,所以它必须是苹果,而不是苹果派,是的,我想要一个精确的匹配

如果你有你的水果阵列并且知道针,那么你真正需要做的就是
在\u array()

我们所做的只是检查传递的字符串是否在$FROUTS数组中,是否返回'FROURT'。您可以返回bool类型,但除非您在此过程中进行进一步检查,否则当您想要水果时,这似乎有点毫无意义


您应该在数组()中查看
。然后在数组中而不是preg\u grep。但循环中可能还有其他我们不知道的代码。平心而论,无论如何都需要一个循环。@NigelRen对我来说,这意味着可能缺乏PHP知识,使用
strpos()
查看循环数组中是否包含字符串。。只是好像OP想要的不是“包含”这个词。可能是对OP的一个评论,以获得清晰的信息,例如,苹果是否会/应该将其视为苹果派。。虽然这很糟糕,但它不是一个水果嗨,谢谢你的评论…是的,我还是一个新手,当然缺乏PHP知识。。。呵呵,在我的例子中,
$str
是一个世界,所以它必须是苹果,而不是苹果派,是的,我想要一个精确的匹配……嗨,谢谢你的回答……首先,我将$str定义为
苹果
,因为它连接到另一个代码。第二,我尝试了你的代码,但结果是
foultappleapple
而不是
foulty
,我不能调用
echo$result两次或两次以上。。谢谢,我已经更新了我的答案,所以它只能输出“水果”或“苹果”,这取决于它是否被找到。关于你的第二点,你能详细解释一下“我不能调用
echo result
两次或两次以上”是什么意思吗?我一直在尝试你的代码,结果是
fourt1
not
fourt1
,当我调用两次时,结果是
fourt11
。对于“我不能调用echo result两次或两次以上”,我的意思是重复调用
$result
。你能在问题中尽可能详细地描述你想要的输出是什么吗。好的,当
$str
苹果
苹果
包含在
数组('APPLE','BANANA',AVOCADO')中时
结果是
水果
,但如果
$str
奶牛
,则表示不在数组中,结果是
奶牛
。当我调用
echo$result;'将显示
FRUIT`但在调用时
echo$result;echo$result;'将显示
FRUITFRUIT`Hi..,我一直在尝试你的代码,但是当
$str
不在
'APPLE'、'BANANA'、'AVOCADO'
之间时,例如,如果
$str
奶牛
则结果为空,而不是
奶牛
@benkmad如果它与你想要的完全匹配,那么这就是你应该使用的答案。另一个答案不需要精确匹配。
function checkFruit($search)
{
    $fruits = ['APPLE', 'BANANA', 'AVOCADO'];
    return (in_array($search, $fruits) ? 'FRUIT' : $search);
}

$str = 'APPLE';
echo 'An apple is a '. checkFruit($str);

$str = 'COW';
echo 'A cow is a '. checkFruit($str);