Как да свържете четири условия в стенограма if-else-изявление

Показвам карта на Google на моя уебсайт, която преминава през редица стойности въз основа на техните координати в базата данни.

Има четири различни типа партньори и те са подчертани с различни цветни маркери.

Досега успешно показвам 3 различни цветни маркера, използвайки стенограма if-else. Как мога да добавя още едно условие към това, за да покажа окончателния си цветен маркер за Type4?

<?php
$markers = array();
foreach ($current as $key => $value) {

$markers[] = array(
  'latLng' => array($value['Partner']['lat'], $value['Partner']['lon']),
  'options' => array(
    'icon' => $this->Html->url('/img/icons/'.($value['Partner']['type1'] ? 'pink-pin.png' : ($value['Partner']['type2'] ? 'green-pin.png' : 'purple-pin.png'))),
  ),
  'data' => array(
    'html' => 
      '<p>'.$value['Partner']['name'].'</p>'
  ),
);
}
?>

person rans    schedule 24.09.2015    source източник
comment
Току-що редактирах накратко въпроса ви, за да направя действителния проблем по-лесно за разбиране. Ако имате проблем с моите редакции, можете да се върнете към предишна версия!   -  person Lars Ebert    schedule 24.09.2015


Отговори (1)


Не бих препоръчал използването на условието за стенография в този случай, тъй като ще стане доста сложно и неработещо.

Вместо това използвайте верига от изрази if-else:

<?php
$markers = array();
foreach ($current as $key => $value) {
    if($value['Partner']['type1']) {
        $icon = 'pink-pin.png';
    } elseif($value['Partner']['type2']) {
        $icon = 'green-pin.png';
    }  elseif($value['Partner']['type3']) {
        $icon = 'black-pin.png';
    } else {
        $icon = 'blue-pin.png';
    }

    $markers[] = array(
        'latLng' => array($value['Partner']['lat'], $value['Partner']['lon']),
        'options' => array(
            'icon' => $icon,
        ),
        'data' => array(
            'html' => '<p>' . $value['Partner']['name'] . '</p>'
        ),
    );
}
?>

Можете да добавяте или премахвате толкова типове, колкото желаете.

person Lars Ebert    schedule 24.09.2015
comment
Току що се сетих за нещо подобно, благодаря за отговора. Мислех, че начинът, по който се опитвах да го направя, е грешен и сложен!! - person rans; 24.09.2015