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