用for循环优化数组

时间:2013-03-18 15:02:11

标签: php arrays for-loop

我同意建立一个计算“priceinterval”的函数。这意味着您要构建一个数组,要为1-3之间的示例编号分配值,以指定“1-3”示例$ array [2] => “1-3”和4-10 $ array [5] => “4-10” 我已经构建了一个可以工作的函数,但是想要优化函数,一个擅长for循环的人;)

public function CalcPris() {

    $Prisinterval = array();

    for ($i = 0; $i <= 3; $i++) {
        array_push($Prisintervall, "1-3");
    }
    if ($i = 4) {
        for ($i = 4; $i <= 10; $i++) {
            array_push($Prisintervall, "4-10");
        }
    }
    if ($i = 11) {
        for ($i = 11; $i <= 50; $i++) {
            array_push($Prisintervall, "11-50");
        }
    }
    if ($i = 51) {
        for ($i = 51; $i <= 100; $i++) {
            array_push($Prisintervall, "51-100");
        }
    }
    var_dump($Prisinterval);
}   

这个功能的原因是你应该得到一个价格下限。

我的下一步是检查数字“2”的值是多少,因此,请构建一个已经完成的数组,其值为1-100

2 个答案:

答案 0 :(得分:1)

你的方法完全没了...... 你想要这样的东西:

function printerval($int){
    if($int >= 1 && $int <= 3){
        return "1-3"; 
    }elseif($int >= 4 && $int <= 10){
        return "4-10";
    }elseif($int >= 11 && $int <= 50){
        return "11-50";
    }elseif($int >= 51 && $int <= 100){
        return "51-100";
    }   
    return "error";
}

调用printerval(2);将返回字符串“1-3”

这里似乎是愚蠢的事情:

function printerval(){
    $arr= array();
    for($i=1;$i<=100;$i++){
        if($i >= 1 && $i <= 3){
            $arr[$i]= "1-3"; 
        }elseif($i >= 4 && $i <= 10){
            $arr[$i]=  "4-10";
        }elseif($i >= 11 && $i <= 50){
            $arr[$i]=  "11-50";
        }elseif($i >= 51 && $i <= 100){
            $arr[$i]=  "51-100";
        }   
    }
    return $arr;
}

虽然这是错误的做法,但现在应该回答这个问题。

答案 1 :(得分:0)

好的,要优化此功能,您应该执行以下操作:

  1. 前往最近的技术书店,或在oreilly.com注册。
  2. 购买Learning PHP5
  3. 的副本
  4. 阅读本书并了解if ($x = 4)if ($x == 4)之间的区别。
  5. 阅读本书并了解for循环和数组。