- ベストアンサー
配列にダブルクォーテーション付の値をいれたい
- memberテーブルから抽出したnameKanji配列に、ダブルクォーテーション付の値をいれたい。
- 配列には最終的に{"田中","斉藤","鈴木"}という値をいれたい。
- 解決方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1 です。 本題とは無関係ですが、mysql_queryを使っているのが気になります。すでに非推奨ですので、早急にPDOで書き直してください。 http://php.net/manual/ja/mysqlinfo.api.choosing.php またデータベース関数(手続き型)としても「件数を取得してから、その件数までforループで回す」という手順は疑問符です。fetchするまでに件数が不変という前提は危ないと思います。 $array_nameKanji = array(); $sql = "SELECT nameKanji FROM member"; $rs = mysql_query($sql,$conn); while ($rec = mysql_fetch_assoc($rs)) { $array_nameKanji[] = '"' . $rec["nameKanji"] . '"'; } $totalMember = count($array_nameKanji); とすべきでしょう。
その他の回答 (3)
- memphis
- ベストアンサー率40% (975/2395)
DBのレコードが既に文字に「”」が付けてませんか? phpMyAdmin などを使ってDBを確認して下さい。
お礼
別のところに原因がある気がしてます。 ありがとうございます。 原因不明ですね。 もう少しかんがえて、あらためて質問させていただきます。
- t_ohta
- ベストアンサー率38% (5241/13712)
"\"" じゃなくて '"' とシングルクォートでダブルクォートを囲むんじゃダメですか。
お礼
やってみたのですが、うまくいきませんでした。 ありがとうございます。 原因不明ですね。 もう少しかんがえて、あらためて質問させていただきます。
- shimix
- ベストアンサー率54% (865/1590)
>$array_nameKanji[$i] = "\"" . $rec["nameKanji"] . "\""; >こうしてみると、 >{"""田中""","""斉藤""","""鈴木"""} >となってしまいます。 ちょっと考えられません。下記ソースで試しましたが、そういう現象は再現出来ませんでした。 <?php $rec = array( array('id'=>1, 'nameKanji'=>'田中'), array('id'=>2, 'nameKanji'=>'斉藤'), array('id'=>3, 'nameKanji'=>'鈴木'), ); $array_nameKanji = array(); foreach ($rec as $key=>$val) { $array_nameKanji[] = "\"" . $val['nameKanji'] . "\""; } print_r($array_nameKanji);
お礼
ありがとうございます。 原因不明ですね。 もう少しかんがえて、あらためて質問させていただきます。
お礼
アドバイスありがとうございます。 もう少しかんがえて、あらためて質問させていただきます。