2015-09-24 6 views
0

Я показываю карту Google на своем веб-сайте, которая просматривает ряд значений на основе их координат в базе данных.Как связать четыре условия в сокращенном if-else-statement

Существует четыре разных типа партнеров, и они выделяются разными цветными маркерными штифтами.

До сих пор я успешно показываю 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>' 
), 
); 
} 
?> 
+0

Я просто коротко отредактировал ваш вопрос, чтобы сделать реальную проблему более понятной. Если у вас есть проблемы с моими изменениями, не стесняйтесь возвращаться к предыдущей версии! –

ответ

0

В этом случае я бы не рекомендовал использовать сокращенное состояние, так как оно станет довольно сложным и неработоспособным.

Вместо этого следует использовать цепочку if-то еще утверждений:

<?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>' 
     ), 
    ); 
} 
?> 

Вы можете добавлять или удалять как можно больше типов, как вы хотите.

+1

Просто придумал что-то похожее, спасибо за ваш ответ. Я действительно думал, как я пытался это сделать, было неправильно и сложно! – rans

Смежные вопросы