localhost MySqlテーブルの列をループしています。私はこの表のすべての値を印刷することができます。私の目標は、これらの値をJSON形式に変換して、アンドロイドアプリがListViewを読み込んで読み込むことができるようにすることです。私は のJSON文字列をフォーマットするのに必要なキーと値のペアの "キー"値の設定に問題があるようです。キーと値のペアを持つこれらのjson_encode配列を作成するためにwhileループを使用する方法はわかりません。JSON形式の文字列のキーと値のペアを生成するPHPの配列
は、ここで私はこれまで試してみましたものです:
それは動作しますが、私は私のwhileループは、キー/値のペアを割り当て、私のアプリは、リストビューにアップロードすることができるようにJSON文字列を作成します。
//all connections to database have been established
$hold = "select email from info";
$h = mysqli_query($connection,$hold);
$a = array();
$d = 0;
while($row = mysqli_fetch_array($h)){
echo $d.'<pre>'.$row['email'].'<pre>';//this works fine
$a[d] = $row['email']; //values have been assigned to array that will be
//converted to JSON format, but how can I assign the "key" to each value
//now inside here it says that 'd' is an undefined constant. What could be
//wrong with the scope of 'd'?
$d++;
}
キーが割り当てられたら、json_encode()で配列をjson形式に変換するだけで済みます。私のアンドロイドアプリでは、これらのキーと値のペアを取得します。だから何とかして、私のアプリケーションコードは、 "キー"がwhileループの中でどのように割り当てられたのかを知る必要があります。アルファベット順に並べられたキーでもかまいませんので、値を取得するのに役立つオーダーに従うことができます。
ご意見やご提案がありましたら、アドバイスをお願いします。
あなたは0からnまでのキーが必要な場合は、配列にインデックスに自分を必要としないあなたに
私の愚かな間違いは、周りに一重引用符を入れないでください。情報のおかげで。私はこのテーブルの列に参照識別子を置き、jsonでエンコードされた文字列を生成するためにキーを使用します。 thanks @ don'tpanic –
dを一重引用符で囲んでも、1つのレコードしかない場合を除き、期待する出力は得られません。そうすることで、 '$ a'配列の文字列' d 'をキーとして使い、それをwhileループの各繰り返しで上書きします。 '$ d'変数を使いたい場合は、' $ a [d] 'の代わりに' $ a [$ d] 'を使いますが、' $ a [] 'と同じ効果があります。 –