PHP не находит значения массива, помеченные строками

0

Поэтому у меня есть цикл while, который генерирует маркеры карт google:

<?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
            }

        };

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

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

Искренняя благодарность за любую помощь:

Теги:
arrays

1 ответ

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
    Привет, большое спасибо за ответ. К сожалению, это не сработало.
  • 0
    Я на самом деле только что понял, хаха. Это следовало попробовать гораздо раньше: echo 'var icon = customIcons ["'. $ Row ['type']. '"];'; просто нужен дополнительный набор цитат.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню