循环查询
问题描述:
//display faction userlevel:
$level_boss = $req_faction_info['f_boss'];
$level_uboss = $req_faction_info['f_uboss'];
$level_rhm = $req_faction_info['f_rhm'];
$level_lhm = $req_faction_info['f_lhm'];
$level_r1 = $req_faction_info['f_r1'];
$level_r2 = $req_faction_info['f_r2'];
if($level_boss == $username){ $u_level = 'Boss'; }
elseif($level_uboss == $username){ $u_level = 'Underboss'; }
elseif($level_rhm == $username){ $u_level = 'Right Hand Man'; }
elseif($level_lhm == $username){ $u_level = 'Left Hand Man'; }
elseif($level_r1 == $username){ $u_level = 'Recruiter One'; }
elseif($level_r2 == $username){ $u_level = 'Recruiter Two'; }
else{ $u_level = 'Faction Member'; }
echo '<div id="faction_userlevel">Your current level within the faction is: '.$u_level.'</div>';
必须有一个更简单的方法来做到这一点?循环查询
答
怎么样:
$levels = array(
'f_boss' => 'Boss',
'f_uboss' => 'Underboss',
'f_rhm' => 'Right Hand Man',
'f_lhm' => 'Left Hand Man',
'f_r1' => 'Recruiter One',
'f_r2' => 'Recruiter Two'
);
$level = null;
foreach($levels as $key => $val){
if($username == $req_faction_info[$key]) $level = $levels[$key];
}
if($level === null) $level = 'Faction Member';
echo '<div id="faction_userlevel">Your current level within the faction is: '.$level.'</div>';
答
好吧......做到这一点:
foreach($req_faction_info AS $key => $val){
$$key = $val;
}
switch $username{
case $f_boss:
$u_level = "Boss";
break;
case $f_uboss:
$u_level = "Underboss";
break;
}
嗯......想不出任何其他方式真正做到这一点。
答
$level=array(
'Faction Member',
'f_boss'=>'Boss',
'f_uboss'=>'Underboss',
'f_rhm'=>'Right Hand Man',
'f_lhm'=>'Left Hand Man',
'f_r1'=>'Recruiter One',
'f_r2'=>'Recruiter Two'
);
echo '<div id="faction_userlevel">Your current level within the faction is: '.$level[array_search($username,$req_faction_info)].'</div>';
+0
但你错过了“派系成员”的情况。 – darma 2010-08-14 18:56:00
+1
简单易如反掌。答案固定。如果未找到匹配项,array_search将返回FALSE。 FALSE将对应于数组中的索引元素0。 – stillstanding 2010-08-14 19:01:23
谢谢!我很惊讶我的答案有多快! :D – 2010-08-14 19:01:40