Я пытаюсь извлечь данные из MySQL. Поскольку я все еще изучаю PHP и MySQLi, я не совсем понимаю, почему этот код печатает двойные результаты с помощью цифровых клавиш. Мне нужно нажимать только строковые ключи со значениями. Спасибо за какое-то направление.PHP array_push() возвращает числовые ключи тоже, а только строковые ключи
код
if ($r = $mysqli -> query ($q)) {
${ 'err_css_' . $err_asid } = array();
while ($row = mysqli_fetch_array ($r)) {
array_push (${ 'err_css_' . $err_asid }, ${ 'err_css_' . $err_asid }[$row['language_asid']]=$row['value']);
}
print_r (${'err_css_' . $err_asid });
}
результат:
Array (
[ces] => background:czech_flag_url;
[0] => background:czech_flag_url; // i dont want numeric key
[eng] => background:english_flag_url;
[1] => background:english_flag_url; // i dont want numeric key
)
'fetch_array' заполняет как числовые, так и строковые ключи, вы ищете' fetch_assoc'. – georg
@georg Если я изменил его на 'while ($ row = mysqli_fetch_assoc ($ r)), результат будет таким же. – falcon
'почему этот код печатает двойные результаты с помощью числовых клавиш тоже, это по умолчанию, иначе вам нужно передать дополнительные флаги в' fetch_array' за то, что вы действительно хотите. –