У меня есть функция PHP, которая возвращает массив. Это выход print_r($myArray)
:Не удается получить доступ член массива - ОБНОВЛЕНО
Array (
[id] => 8166
[customer_id] => 73
[nickname] => AnnieB
[name] => Anastasia Beaverhausen
[email] => [email protected]
[phone] => 555-555-5555
[company] => Annie B's
[address1] => 123 Main Street
[address2] => Apartment 555
[city] => Chicago
[state] => IL
[zip] => 55555
[billing] => 1
[residence] => 0
[token] =>
[verified] => 1)
я должен иметь возможность получить доступ к любому из членов, сказав что-то вроде $myArray['city']
, правильно? Я знаю, что я делал это в прошлом, но он продолжает возвращать пустую строку, даже если в поле города есть значение.
Любые идеи? ================== MORE КОД РАЗМЕЩЕННЫЕ НА ПРОСЬБЫ ========================== === Я использую это в Joomla, поэтому есть несколько строк, которые относятся к Joomla. Конечной целью этого кода является заполнение выпадающего списка адресами из базы данных; значения опций содержат вложенную строку всех значений столбца (для доступа через javascript позже), а текст опции - это одно поле. Вот код, который создает выпадающее меню:
foreach (getAddresses($AcctID) as $id => $info) {
print_r($info);
$nickName = $info[2];
error_log("nickname=".$nickName);
$infoStr = implode("|", $info);
$addressOptions .= "<option value=\"{$infoStr}\">$nickName</option>";
}
Функция getAddresses находится здесь (это работает правильно):
function getAddresses($AcctID) {
$db =& JFactory::getDBO();
$query = "select * from jos_customers_addresses where customer_id = ".$db->quote($AcctID);
$db->setQuery($query);
if (!$db->query()) error_log($db->stderr());
if (!$db->getNumRows())
return false;
else
return $db->loadAssocList();
}
print_r ($ информация) линии является то, что возвращает массив, который я первоначально отправил , Следующие две строки не те, давая мне проблемы:
$nickName = $info[2];
error_log("nickname=".$nickName);
Я также попытался $ NickName = $ Информации [ «ник»] и получили тот же результат - никакого значения, даже несмотря на то, очевидно, значение в print_r, и значение действительно получается правильно в коде, сгенерированном линией implode. Если вы можете найти где-нибудь между этими двумя линиями, где я перезаписью своим переменным, или любым другим, пожалуйста, направьте его ко мне, потому что я невежественный, почему я не могу получить ручку на этой величине.
используйте кнопку кода для форматирования вывода 'print_r'. Кроме того, включите строку, в которой вы извлекаете значение массива. – aularon
Пожалуйста, покажите нам больше кода. –
Моя ставка заключалась бы в том, что вы переписываете массив где-то в своем коде. –