减少php中代码重复模式的任何方法

减少php中代码重复模式的任何方法,php,Php,我这里有一些代码 if ($brand == "Kumiai Dairies" || $brand == "Anlene" || $brand == "Yoplait" || $brand == "Hokkaido Hidaka" || $brand == "Jacob's" || $brand == "V8" || $brand == "Cow & Gate"){ do something here; } 有没有办法防止重复$brand==xxx???是的,您可以使用: 是的,您可

我这里有一些代码

if ($brand == "Kumiai Dairies" || $brand == "Anlene" || $brand == "Yoplait" || $brand == "Hokkaido Hidaka" 
|| $brand == "Jacob's" || $brand == "V8" || $brand == "Cow & Gate"){
do something here;
}
有没有办法防止重复$brand==xxx???

是的,您可以使用:

是的,您可以使用:


可以创建关联数组:

$brands = array(
    "Kumiai Dairies" => true,
    "Anlene" => true,
    ...
);
然后再与

if(isset($brands[$brand])) {

}

有关这两种方法的差异的解释,请参见@Corbin在@ThiefMaster的回答中的评论。

您可以创建关联数组:

$brands = array(
    "Kumiai Dairies" => true,
    "Anlene" => true,
    ...
);
然后再与

if(isset($brands[$brand])) {

}
有关这两种方法的差异的解释,请参见@Corbin在@ThiefMaster的回答中的评论。

您可以使用switch, 1.它速度快,搜索时间长 2.不需要每次都在其中创建数组和搜索

switch($brand){
case "Kumiai Dairies":
case "Anlene":
....
....
//do something
break;
}
你可以使用开关, 1.它速度快,搜索时间长 2.不需要每次都在其中创建数组和搜索

switch($brand){
case "Kumiai Dairies":
case "Anlene":
....
....
//do something
break;
}

在这种情况下,这是无关紧要的,但值得一提的是,in_数组是一个线性搜索,而array_key_exist或isset on a key是常数时间。有时,如果是一个经常被搜索的大数组,我会使用Felix的方法。@red23jordan:线性搜索需要花费时间来查找元素。如果您有一个包含1000个元素的数组,那么在最坏的情况下必须进行1000次比较。在类似哈希表的数据结构中查找元素需要O1,因此它与集合的大小无关。对于像您这样的小集合,差异可以忽略不计。PHP中的关联数组本质上是一个哈希表。在哈希表中查找值是一个常量时间操作或。。。不停地笑。哈希表将键映射到插槽。不过,in_数组必须对所有值进行线性搜索,因为无法快速找到基于其他内容的值。如果对数组进行排序或其他操作,则可以进行二进制搜索或比线性搜索更好的操作,但哈希表仍将始终获胜。编辑:菲利克斯击败了我。我还是不说了,因为它的措辞有点不同。在这种情况下,它是无关紧要的,但值得一提的是,in_数组是一个线性搜索,array_key_存在,或者isset在一个key上是常数时间。有时,如果是一个经常被搜索的大数组,我会使用Felix的方法。@red23jordan:线性搜索需要花费时间来查找元素。如果您有一个包含1000个元素的数组,那么在最坏的情况下必须进行1000次比较。在类似哈希表的数据结构中查找元素需要O1,因此它与集合的大小无关。对于像您这样的小集合,差异可以忽略不计。PHP中的关联数组本质上是一个哈希表。在哈希表中查找值是一个常量时间操作或。。。不停地笑。哈希表将键映射到插槽。不过,in_数组必须对所有值进行线性搜索,因为无法快速找到基于其他内容的值。如果对数组进行排序或其他操作,则可以进行二进制搜索或比线性搜索更好的操作,但哈希表仍将始终获胜。编辑:菲利克斯击败了我。我还是不说了,因为它的措词有点不同。你可以使用一个规则数组,然后数组翻转它,使数组定义更好。不过,数组翻转将在线性时间内完成,因此,只有在同一脚本运行中多次执行搜索时,翻转才有用。使用常规数组,然后使用数组翻转,可能会使数组定义更精确。不过,数组翻转将在线性时间内完成,因此,只有在同一脚本运行中多次执行搜索时,翻转才有用。