Estoy tratando de crear una matriz JSON con loop, almacené el nombre de los idiomas en la base de datos y los recuperé de la consulta, después de eso necesito convertirlo a este formato

$arrayName = array('lang-1' => null , 'lang-2' => null, ..... ,'lang-n' => null );

¿Cómo puedo lograr eso?

El código PHP es así

include_once "inc/init.php";
header('Content-Type: application/json');
$arrayName = array();
$query = $db->query("SELECT * FROM `medium`");
while ($data = mysqli_fetch_assoc($query)) {
array_push($arrayName, $data['medium']);
}
echo json_encode($arrayName);

Me estoy poniendo en este formato

[
 "Kannada",
 "Telugu",
 "Tamil",
 "Urdu",
 "Spanish",
 "Arabian"
]

Estoy tratando de impulsar el valor pero no estoy en ese formato, por favor, ayúdenme

Gracias

2
rakcode 18 mar. 2017 a las 21:18

2 respuestas

La mejor respuesta

Según sus comentarios, supongo que $data['language'] representa el nombre de su idioma. Entonces puede lograr su objetivo con el siguiente código:

include_once "inc/init.php";
header('Content-Type: application/json');
$arrayName = array();
$query = $db->query("SELECT * FROM `medium`");

while ($data = mysqli_fetch_assoc($query)) {
    $arrayName[$data['language']] = null; // $array[$key] = $value
}

echo json_encode($arrayName);
2
Lkopo 18 mar. 2017 a las 18:36

Usando array_push obtendrás el mismo resultado

include_once "inc/init.php";
header('Content-Type: application/json');
$arrayName = array();
$query = $conn->query("SELECT * FROM `medium`");
while ($data = mysqli_fetch_assoc($query)) {
array_push($arrayName,$data['language ']);

}
$arrayName=array_fill_keys($arrayName, 'null'); 
echo json_encode($arrayName);
1
Avinash Raut 18 mar. 2017 a las 19:25