アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話様です。

タイトルにもありますが連想配列を作成した後(以下に記述例)に
その配列からキーを指定して値を取得したいと思っております。
array_keys関数だと値を指定してキーを取得するみたいで
うまくいきませんでした。
何かよい方法ありませんでしょうか?

//配列に格納
while (条件) {
  $aParaOra += array((キー) => (値));
}

A 回答 (3件)

まず、明示されてる連想配列の作り方だと、


以下のような連想配列が出来上がると思いますが、これでいいですか?

$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'のキーが返ってきます。
    • good
    • 1

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


}
    • good
    • 0

解答番号No.1の者です。



ちなみに、キーの指定なしで全部取得するのであれば、
array_values($aParaOra)
で、配列化されたものが返ってきます。

もしくは、以下のようにforeachでループすれば、
キーと値を分離して取得できます。
foreach ($aParaOra as $key => $value) {
# $aParaOra[$key]の値が、$value
}

質問者さんが何をしたいのかがいまいちピンときません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!