行き詰まってしまったため、ご助言をお願いいたします。
$list = array( ['りんご','fruits'], ['かぼちゃ','vegetable'], ['みかん','fruits'], ['キャンディ','sweets'], ['チョコ','sweets'], );
上記の配列から、fruitsに当てはまるものだけを選んで
次の配列を得るにはどうすればいいでしょうか?
$list_fruits = array( ['りんご','fruits'], ['みかん','fruits'], );
自分で書いてみたものは以下です。
$max = count($list); $result = ''; for ($i = 0; $i < $max; $i++) { $result = array_search('fruits', $list[$i]); $result = $result+$result; } $list_fruits = $result;
基礎的なことだと思うのですが、わからなくなってしまっています。
お手数ですが、アドバイスをお願いいたします。
第二要素が、fruitsの物だけを抽出したいってことでしょうか?
せめて行き詰まるまでのコードを載せて欲しい
はい、そうです。
そうですね・・・。
hentaimanさんのおっしゃる通り、
まずは自分でコード書いてみてください。
それで、どうしてもここができない、って部分を絞り込みましょう。
今のままでは、丸投げになっちゃうかと。
アドバイスありがとうございます。
自分で試したコードを追加しました。
ご助言いただけたら嬉しいです。
普通にforeachで回して判断でも良いのでは。
「スマートなやり方」だけ追い求めても使いこなせないだけだと思います。
それに「配列を作りたい」のに
$result = '';
文字列で定義してしまっているし・・・
foreachですね。
わかりました。ありがとうございます。
リファレンスを参照してみます。
forでもループ内でやることは同じですよ。
ありがとうございました!
元のコードでも実現は出来ますが、ループ内の各変数に入っている値をechoなどで表示して確認してみましたか?
デバッグの方法は問いませんけど、array_searchの結果が期待した通りかどうかの確認もしながら作業すると良いと思いますよ
ありがとうございます!
echoのほか、var_dumpやprint_rで確認でも
大丈夫と考えていたのですが、合っているでしょうか。
そうね、むしろvar_dumpの方がいいでしょう
もしも
0番目にfruitsやsweetsなどの種類を入れていたら(['fruits', 'みかん']など)、思った通りに動かない点が出てくる可能性があるので
そういう時にvar_dump使って変数の型も見る事で解決する事があるかも
わかりました。
var_dumpで確認します。
丁寧に教えてくださりありがとうございます。
回答1件
あなたの回答
tips
プレビュー