简化如何调用函数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
notfourt1
,当我调用两次时,结果是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);