有没有更有效的方法来匹配PHP中的多个变量?

有没有更有效的方法来匹配PHP中的多个变量?,php,loops,performance,switch-statement,Php,Loops,Performance,Switch Statement,目前,我有36个正在被洗牌的变量(出于一个非常具体的原因)。不管怎样,一旦变量被洗牌,我就尝试用一个名字来匹配它们。因此,如果$numbers[0]等于1,那么它应该打印“John”。我目前正在使用36个switch case语句来实现这一点,我知道这是非常低效的。所以我想知道有没有更聪明的方法 以下是我的代码(例如,我只展示了3个变量和3个开关案例): 首先将所有名称写入一个数组: $names = array( 0 => 'John', 1 => 'Jane',

目前,我有36个正在被洗牌的变量(出于一个非常具体的原因)。不管怎样,一旦变量被洗牌,我就尝试用一个名字来匹配它们。因此,如果$numbers[0]等于1,那么它应该打印“John”。我目前正在使用36个switch case语句来实现这一点,我知道这是非常低效的。所以我想知道有没有更聪明的方法

以下是我的代码(例如,我只展示了3个变量和3个开关案例):


首先将所有名称写入一个数组:

$names = array(
    0 => 'John',
    1 => 'Jane',
    2 => 'Mirza'
);
之后使用foreach:

foreach($numbers as $number){
    echo $names[$number];
}

很简单,祝你好运!:)

像这样的事情应该可以帮你节省时间:

$theCase =  array ( " is John", " is Jane", " is Mirza");
$numbers = range(1, 3);shuffle($numbers);     
for ($i=0;$i<3;$i++)
    echo $numbers[$i] . $theCase[$numbers[$i]];
$theCase=array(“is John”、“is Jane”、“is Mirza”);
$numbers=范围(1,3);洗牌(数字);

例如($i=0;$i不太确定您的目标是什么;您的示例有点抽象。但您可以做两件事:

 // loop
 foreach ($numbers as $n) {
     switch($n) { ... }
 }
然后,如果比较总是与静态列表进行比较,则应避免使用switch语句:

 $compare = array("", "John", "Jane", "Mirza");

 // loop
     print $compare[n];
我认为in_数组()会更快…他可以加载数组中的值,并与每个子数组进行比较。
 $compare = array("", "John", "Jane", "Mirza");

 // loop
     print $compare[n];