• 締切済み

array keys について

すいません。何度かここで質問しているのですが、いまいち分からない部分があります。 既に何十時間も悩んでいて解決しません。初歩的な質問ですがよろしくお願いします。 結果としてk2k3という表示を期待しているのですが・・。 まず、$key2にはk1k2k3という配列が入り、 それからarray_keys($key2)でキーを取得するのですから array_keys($key2)にはynbが配列として入りますよね? つまり [0]=y [1]=n [2]=b となり、 これをin arrayでyという値を探して、あった場合にはunsetで削除。 何がおかしいのかさっぱり分かりません。 すいませんが間違っている部分を教えてもらえませんか? <?php $food["y"]= "k1"; $food["n"]= "k2"; $food["b"]= "k3"; foreach($food as $key1=>$key2){ if(in_array("y",array_keys($key2))) unset($food[$key1]); } ?>

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

foreachでまわす意味はないですね <?php $food["y"]= "k1"; $food["n"]= "k2"; $food["b"]= "k3"; $key="y"; unset($food[$key]); print_r($food); ?>

cinnron
質問者

補足

すいません。foreachが意味が無いのは分かっています。 本来は多次元配列なのですが、質問を簡素にするため一次元にしただけで、 問題は質問のプログラムでは期待した結果にならないため、どこが間違っているのか 教えて欲しいのです。 本来は多次元ですので、foreachで回し、array keysでキー配列を取得→in arrayでキーの値を調べ、その結果により一部配列削除としたいのです

関連するQ&A