質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

264閲覧

配列のキーについて教えてください

退会済みユーザー

退会済みユーザー

総合スコア0

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/10/13 11:59

ご覧いただきありがとうございます。

php

1array ( 'count_one' => '1', 0 => '1', 'count_two' => '2', 1 => '2', 'count_three' => '3', 2 => '3', 'count_four' => '4', 3 => '4', 'count_five' => '5', 4 => '5', 'count_six' => '6', 5 => '6', 'count_seven' => '7', 6 => '7', 'count_eight' => NULL, 7 => NULL, )

上記の配列をimplodeして、var_exportすると'11223344556677'と表示されます。
この同じ数字の重複はキーである'count_one'=>'1'とこちらもキーである0=>'1'の兼ね合いで
表示されている事はなんとなくわかるのですが、
この'count_●●'の後に続いている0や1などのキーは、連想配列じゃない配列に与えられる?
キーであると思っていたのですが、'count_one'などのキーがある(連想配列である)にも関わらず
配列の中に組み込まれています。
このショートカットキー?みたいな物はなぜ連想配列でも表示されるのでしょうか?
また、このショートカットキー?を配列から削除する方法などあるのでしょうか?
array_uniqueだと投票数(count)が重複した際に削除してしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

タグにPDOがあることから、rowをfetch_allで取得されているのだと思います。
fetch_assocで取得することで希望の動作となるかと思います。


追記:

上記メソッドはmysqliの気がします。失礼しました。

PDOStatement::fetch時の引数にPDO::FETCH_ASSOCを指定するか、PDOStatement::setFetchModeで標準のフェッチモードを変更することで対応可能かと思います。

投稿2017/10/13 12:11

編集2017/10/13 12:19
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/13 12:44

ご回答ありがとうございます。 PDOの配列である事を記述せず申し訳ありませんでした。気づいていただきありがとうございます。 追加で質問になってしまうのですが $counts = array( 'count_id' => array( 'count_one' => '1', 'count_two' => '2', 'count_three' => '3', 'count_four' => '4' ), といったような配列を生成できますでしょうか?
退会済みユーザー

退会済みユーザー

2017/10/13 19:42

ご質問の想定が理解しきれていないかもしれませんが、下記のように書けるかと思います。 $result = $sth->fetch(PDO::FETCH_ASSOC); $counts = ['count_id' => $result];
退会済みユーザー

退会済みユーザー

2017/10/14 02:07

ありがとうございます。無事配列を作ることができました。本題ではない質問にもお答えいただき、本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問