Очень базовая c вещь, вероятно, мне не хватает, но я не понимаю. У меня есть таблица с именем mus_translated_languages в моей базе данных, в которой у меня есть столбец типа данных json (шесть записей), значение которого всегда находится в структуре:
["GERMAN","ENGLISH","FRENCH"]
Когда Я использую следующий код:
$sql = 'SELECT labels->"$[1]" FROM mus_translated_languages';
$result = mysqli_query( $conn, $sql );
if ( mysqli_num_rows( $result ) > 0 ) {
while ( $row = mysqli_fetch_assoc( $result ) ) {
echo $row;
}
}
Вместо шести соответствующих языков я получаю следующий результат:
ArrayArrayArrayArrayArrayArray
Итак, это похоже на мой код не может прочитать выходное значение, а только его тип данных. Что мне не хватает ??
UPDATE
Я использовал var_dump($row)
вместо echo $row
в приведенном выше коде, чтобы увидеть, что у нас есть, и сервер вернул:
array(1) { ["labels->"$[1]""]=> string(9) ""Deutsch"" } array(1) { ["labels->"$[1]""]=> string(10) ""Englisch"" }
и так далее, и так далее, в-четвертых, для 6 массивов / записей. Затем я использовал:
foreach ($row as $key => $value) {
echo $value;
}
вместо echo $row
в приведенном выше коде и получил то, что хотел. Однако я чувствую, что это не так, как должно быть; PHP извлекает отдельные элементы массива как подмассивы с одним индексом, вместо того, чтобы извлекать их как значения. Что мне не хватает?