2014-11-18 2 views
0

Таким образом, у меня есть время цикла, который генерирует Google Maps маркеры:PHP значения не находя массив, помеченных строк

<?php 
mysql_data_seek($query, 0); 
while ($row = mysql_fetch_array($query)) { 
    $lat2 = $row['usrhomelat']; 
    $lon2 = $row['usrhomelng']; 
    echo 'var icon = customIcons[ ' . $row['gender'] . '];'; 
    echo 'var miLatLng = new google.maps.LatLng(' . $lat2 . ',' . $lon2 . ');'; 
    echo 'var marker = new google.maps.Marker({'; 
    echo 'position: miLatLng,'; 
    echo 'map: map,'; 
    echo 'icon: icon.icon'; 
    echo '});'; 
} 
?> 

и захватывает соответствующий значок из этого массива:

var customIcons = { 
      male: { 
       icon: 'https://5d31037421' 
      }, 
      female: { 
       icon: 'https://5d310374214f1 
      }, 
      0: { 
       icon: 'https://5d310374214f 
      }, 
      1: { 
       icon: 'https://5d310374214f1d0670ef 
      }, 
      2: { 
       icon: 'https://5d310374214f1d0670e 
      } 

     }; 

Я задаюсь вопросом, почему когда связанный компонент массива является целым числом, он работает, но когда он является строкой, то есть «мужской» или «женский», я получаю и невостребованную опорную ошибку: мужчина не определен.

Я мог бы временно переключить эти значения массива на целые числа, чтобы решить проблему, но, скорее всего, они будут нуждаться в них как строки позже, поэтому я просто решаю эту проблему, прежде чем слишком много переключаться.

Искреннее спасибо за любую помощь-а

ответ

0

Вы должны дать в одинарные или двойные кавычки:

пример: индекс массива

'male', 'female' etc 

Integer, либо вы можете дать с нашим с вне цитаты, но строковый индекс, который вы должны указывать внутри кавычек.

так попробовать:

var customIcons = { 
      'male': { 
       'icon': 'https://5d31037421' 
      }, 
      'female': { 
       'icon': 'https://5d310374214f1' 
      }, 
      0: { 
       'icon': 'https://5d310374214f' 
      }, 
      1: { 
       'icon': 'https://5d310374214f1d0670ef' 
      }, 
      2: { 
       'icon': 'https://5d310374214f1d0670e' 
      } 

     }; 
+0

Эй, большое спасибо за ответ. К сожалению, это не сработало. – ambe5950

+0

Я на самом деле только что получил его, ха-ха. Скорее всего, это было раньше: echo 'var icon = customIcons ["'. $ Row ['type']. '"];'; просто нужен дополнительный набор котировок. – ambe5950

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