人に聞けない痔の悩み、これでスッキリ >>

すいません。何度かここで質問しているのですが、いまいち分からない部分があります。
既に何十時間も悩んでいて解決しません。初歩的な質問ですがよろしくお願いします。
結果として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]);
}
?>

このQ&Aに関連する最新のQ&A

A 回答 (1件)

foreachでまわす意味はないですね



<?php
$food["y"]= "k1";
$food["n"]= "k2";
$food["b"]= "k3";
$key="y";
unset($food[$key]);
print_r($food);
?>

この回答への補足

すいません。foreachが意味が無いのは分かっています。
本来は多次元配列なのですが、質問を簡素にするため一次元にしただけで、
問題は質問のプログラムでは期待した結果にならないため、どこが間違っているのか
教えて欲しいのです。

本来は多次元ですので、foreachで回し、array keysでキー配列を取得→in arrayでキーの値を調べ、その結果により一部配列削除としたいのです

補足日時:2012/09/22 12:46
    • good
    • 0

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


人気Q&Aランキング