“如何重复php”;如果;20次?

“如何重复php”;如果;20次?,php,for-loop,Php,For Loop,我试图用dh_c_01_01重复php“if”20次。我怎么能做到 if ($dh_c_01_01['id'] == $a_c_a_max) { $dh_sq_01_01 = $a_b_s_05; } elseif ($dh_c_01_01['id'] == $a_c_a_1_b) { $dh_sq_01_01 = $a_b_s_06; } elseif ($dh_c_01_01['id'] == $a_c_a_2_b) { $dh_sq_01_01 = $a_b_s_07; } e

我试图用
dh_c_01_01
重复php“if”20次。我怎么能做到

if ($dh_c_01_01['id'] == $a_c_a_max) {
  $dh_sq_01_01 = $a_b_s_05;
} elseif ($dh_c_01_01['id'] == $a_c_a_1_b) {
  $dh_sq_01_01 = $a_b_s_06;
} elseif ($dh_c_01_01['id'] == $a_c_a_2_b) {
  $dh_sq_01_01 = $a_b_s_07;
} elseif ($dh_c_01_01['id'] == $a_c_a_3_b) {
  $dh_sq_01_01 = $a_b_s_08;
} elseif ($dh_c_01_01['id'] == $a_c_a_4_b) {
  $dh_sq_01_01 = $a_b_s_09;
} elseif ($dh_c_01_01['id'] == $a_c_a_5_b) {
  $dh_sq_01_01 = $a_b_s_10;
} elseif ($dh_c_01_01['id'] == $a_c_a_6_b) {
  $dh_sq_01_01 = $a_b_s_11;
} elseif ($dh_c_01_01['id'] == $a_c_a_7_b) {
  $dh_sq_01_01 = $a_b_s_12;
} elseif ($dh_c_01_01['id'] == $a_c_a_8_b) {
  $dh_sq_01_01 = $a_b_s_13;
} elseif ($dh_c_01_01['id'] == $a_c_a_9_b) {
  $dh_sq_01_01 = $a_b_s_14;
}


if ($dh_c_02_01['id'] == $a_c_a_max) {
  $dh_sq_02_01 = $a_b_s_05;
} elseif ($dh_c_02_01['id'] == $a_c_a_1_b) {
  $dh_sq_02_01 = $a_b_s_06;
} elseif ($dh_c_02_01['id'] == $a_c_a_2_b) {
  $dh_sq_02_01 = $a_b_s_07;
} elseif ($dh_c_02_01['id'] == $a_c_a_3_b) {
  $dh_sq_02_01 = $a_b_s_08;
} elseif ($dh_c_02_01['id'] == $a_c_a_4_b) {
  $dh_sq_02_01 = $a_b_s_09;
} elseif ($dh_c_02_01['id'] == $a_c_a_5_b) {
  $dh_sq_02_01 = $a_b_s_10;
} elseif ($dh_c_02_01['id'] == $a_c_a_6_b) {
  $dh_sq_02_01 = $a_b_s_11;
} elseif ($dh_c_02_01['id'] == $a_c_a_7_b) {
  $dh_sq_02_01 = $a_b_s_12;
} elseif ($dh_c_02_01['id'] == $a_c_a_8_b) {
  $dh_sq_02_01 = $a_b_s_13;
} elseif ($dh_c_02_01['id'] == $a_c_a_9_b) {
  $dh_sq_02_01 = $a_b_s_14;
}

[$dh_sq_03_01, ... , $dh_sq_20_01]

最多20次,这是一个坏习惯。尝试使用开关大小写,或使用数组作为容器

$array = [
  'id1' => 'action1',
  'id2' => 'action2',
   ...
];

$dh_sq_02_01 = $array[$dh_c_02_01['id']];

公正和榜样。希望有帮助

我不能确定我是否正确理解了你的问题,或者假设我知道你的变量是什么或它们的值是什么

根据您的问题,此示例使用额外变量和动态变量。它还假设您的每个用户都存在:



try
switch
case
语句请澄清输入结构和您试图执行的操作。我们很有可能会想出更好的方法……而且它不会用开关/大小写代替20个if/else。给变量取正确的名称总是一个好习惯,这是有意义的。这将在以后重新访问代码时为您节省大量时间。编写自我解释的代码也减少了用户的评论,如果您在问问题,比如这样,这真的很有帮助。
<?php
$dh_c_limit = 20; // <-- loop limit
$a_c_a_limit = 9; // <-- loop limit
$a_b_s_addition = 5; // <-- based on your question
$a_c_a_max = 0; // <-- change this to whatever '$a_c_a_max' should be!

for ($dh_i = 1; $dh_i <= $dh_c_limit; $dh_i++) {    
    if(${"dh_c_".str_pad($dh_i,2,"0",STR_PAD_LEFT)."_01"}['id'] == $a_c_a_max){ // <-- checks against '$a_c_a_max'
        ${"dh_sq_".str_pad($dh_i,2,"0",STR_PAD_LEFT)."_01"} = ${"a_b_s_".str_pad($a_c_i,2,"0",STR_PAD_LEFT)}; // <-- set the '$dh_sq_' variable to '$a_b_s_' variable
    }
    else{
        for ($a_c_i = 1; $a_c_i <= $a_c_a_limit; $a_c_i++) {
            if(${"dh_c_".str_pad($dh_i,2,"0",STR_PAD_LEFT)."_01"}['id'] == ${"a_c_a_".$a_c_i."_b"}){ // <-- checks against '$a_c_a_' variable
                ${"dh_sq_".str_pad($dh_i,2,"0",STR_PAD_LEFT)."_01"} = ${"a_b_s_".str_pad(($a_c_i+$a_b_s_addition),2,"0",STR_PAD_LEFT)};  // <-- set the '$dh_sq_' variable to '$a_b_s_' variable
                break; // <-- break the loop
            }
        } 
    }
} 
?>