• ベストアンサー

連想配列からの値の取り出し

お世話様です。 タイトルにもありますが連想配列を作成した後(以下に記述例)に その配列からキーを指定して値を取得したいと思っております。 array_keys関数だと値を指定してキーを取得するみたいで うまくいきませんでした。 何かよい方法ありませんでしょうか? //配列に格納 while (条件) {   $aParaOra += array((キー) => (値)); }

質問者が選んだベストアンサー

  • ベストアンサー
  • karace
  • ベストアンサー率45% (9/20)
回答No.3

解答番号No.1の者です。 ちなみに、キーの指定なしで全部取得するのであれば、 array_values($aParaOra) で、配列化されたものが返ってきます。 もしくは、以下のようにforeachでループすれば、 キーと値を分離して取得できます。 foreach ($aParaOra as $key => $value) { # $aParaOra[$key]の値が、$value } 質問者さんが何をしたいのかがいまいちピンときません。

その他の回答 (2)

回答No.2

foreach ($hoge as $key => $value) { }

  • karace
  • ベストアンサー率45% (9/20)
回答No.1

まず、明示されてる連想配列の作り方だと、 以下のような連想配列が出来上がると思いますが、これでいいですか? $aParaOra = array(); $i = 0; while($i < 3){ $aParaOra += array( "key$i" => "value$i"); $i++; } var_dump($aParaOra); ---var_dump結果-------- array 'key0' => string 'value0' (length=6) 'key1' => string 'value1' (length=6) 'key2' => string 'value2' (length=6) ------------------------ で、キーを指定して値を取りたいとのことですが、 $aParaOra['key0'] とすれば 'value0'が取得できるのは当然ですが、 この方法しかありません。 それから、キーを複数個指定して、 値を配列で返すような関数は無いので、以下のようなものを作るしかないです。 # キー指定の配列作成 $return = array(); $array = ('key0','key1','key2'); foreach( $array as $value ){ # 指定したキーの値を配列に格納 $return[] = $aParaOra[$value]; } > array_keys関数だと値を指定してキーを取得するみたいで..... これは、配列の中でキーは重複できないからです。 値は重複してもいいので、この関数の意義はそこにあります。 $aParaOraが、以下のような配列だった場合、 ---------- array 'key0' => string 'value' (length=6) 'key1' => string 'value' (length=6) 'key2' => string 'value2' (length=6) ---------- array_keys($aParaOra, 'value') とすれば、'key0','key1'のキーが返ってきます。

関連するQ&A