2017-07-18 3 views
2

Ich brauche ein wenig Hilfe, um eine Regel zu bekommen, etwas anderes auszugeben, wenn eine bestimmte Variable aufgerufen wird. es zu brechen Ich habe die nachfolgend aufgeführten:

private $zebra_moto_symbol = array 
("ES400", "MC9500", "MC9200", "MC9190", "MC9094", "MC9090", "MC9097", "MC9060",; 

und mit diesem Code es die Modelle in die Seite in einer Liste zieht:

public function manufacturer_models_list() { 
    $manu_name = $this->manufacturer_name; 
    $output = "<ul>"; 

    sort($this->$manu_name); 
    foreach($this->$manu_name as $model) { 
     $output .= "<li>" . "<a href=\"repair.php\">" . $model . "</a></li>"; 
    } 

    $output .= "</ul>"; 
    $output .= "<p class=\"clear\"></p>"; 
    $output .= "<a href=\"repair.php\" " . "id=\"arrange-repair\">Arrange A Repair</a>"; 
    return $output; 
} 

Auf alle bis auf zwei von ihnen, ich brauche es Zeigen Sie den Link repair.php an, aber auf zwei müssen diese unterschiedlich sein. Was müsste ich eingeben, um dies zu ermöglichen? Vielen Dank im Voraus (sorry, dieser hat mich verblüfft). :)

+1

Können Sie Ihren Code bitte formatieren (wenn möglich) In seiner jetzigen Form ist es ein wenig schwer zu lesen. – Neal

+1

Willkommen bei [so]. Nehmen Sie sich Zeit, um die Website und die Funktionen des Frageneditors zu erkunden. Es gibt eine schöne Taste '{}', mit der ein Textblock als Code markiert werden kann. Fügen Sie auch nicht den gesamten Code in eine Zeile ein, da er schwer zu lesen ist. Unter dem Editor gibt es eine Vorschau Ihrer Frage, um zu wissen, wie sie aussieht und die Anpassungen vorzunehmen, bevor Sie sie abschicken. – axiac

Antwort

0

Sie können eine switch Anweisung dafür verwenden.

<? 
    public function manufacturer_models_list() { 
     $manu_name = $this->manufacturer_name; 
     $output = "<ul>"; 
     sort($this->$manu_name); 
     foreach ($this->$manu_name as $model) { 
      switch($model) { 
       //Output NOT repair.php on this list of strings 
       case "ES400": 
       case "MC9500": 
        $output .= "<li>DIFFERENT OUTPUT</a></li>"; 
        break; 
       //default is the action that happens if none of the previous conditions are met 
       default: 
        $output .= "<li>" . "<a href=\"repair.php\">" . $model . "</a></li>"; 
        break; 
      } 
     } 
     $output .= "</ul>"; 
     $output .= "<p class=\"clear\"></p>"; 
     $output .= "<a href=\"repair.php\" " . "id=\"arrange-repair\">Arrange A Repair</a>"; 
     return $output; 
    } 
?> 

Lesen Sie mehr über Switch Statements

+0

Das hat perfekt funktioniert, vielen Dank :) –

0

Wenn ich das richtig verstanden, was Sie wollen, ist eine andere Ausgabe auf bestimmte Werte haben.

Ich denke, würde etwa haben ein anderes Array mit den Werten zu halten, die Sie einen anderen Ausgang wollen, und Sie können so etwas tun:

$different_output_array = ['ES400', 'MC9500']; # you can add new elements any time 

und einfach Ihre Funktion so etwas wie dies ändern:

public function manufacturer_models_list() { 
    $manu_name = $this->manufacturer_name; 
    $output = "<ul>"; 

    sort($this->$manu_name); 
    foreach($this->$manu_name as $model) { 

     if(in_array($model,$different_output_array)) 
     { 
      $output .= "<li>" . "<a href=\"another.php\">" . $model . "</a></li>"; 
     } 
     else 
     { 
      $output .= "<li>" . "<a href=\"repair.php\">" . $model . "</a></li>"; 
     } 


    } 

    $output .= "</ul>"; 
    $output .= "<p class=\"clear\"></p>"; 
    $output .= "<a href=\"repair.php\" " . "id=\"arrange-repair\">Arrange A Repair</a>"; 
    return $output; 
} 

Hoffe, das kann helfen.