重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

すいません。phpを初めて勉強中なのですが、少し分からない事があります。
例えば以下のような二次元配列なのですが、私がやりたい事は「キーを使った並び替え」と
「特定のキーの排除」を行い、任意の順番でテキストを展開させたいです。

foreachで回して配列をソートし3つのテキストを展開するまではできたのですが、
キーが「y」となっている配列のみを抜き出すというのがどうすれば良いのでしょう?

いろいろサイトを見てるのですが、特定のキーが入っている配列を抜き出す(または排除)
というのは無く、値を抜き出すなどしかありません・・。




$food["1"]["y"]= "aaa1.txt";
$food["2"]["e"]= "aaa2.txt";
$food["3"]["y"]= "aaa3.txt";
$food["4"]["y"]= "aaa4.txt";

$food["1"]["y"]= "aaa1.txt";
$food["3"]["y"]= "aaa3.txt";
$food["4"]["y"]= "aaa4.txt";

A 回答 (1件)

こんな風に二重でチェックすればよいかと


(1)キーに一つも"y"が含まれない一次配列
(2)キーが"y"ではない二次配列


<?php
$food["1"]["y"]= "hoge1";
$food["2"]["a"]= "hoge2";
$food["2"]["b"]= "hoge3";
$food["2"]["c"]= "hoge4";
$food["3"]["y"]= "hoge5";
$food["3"]["e"]= "hoge6";
$food["4"]["y"]= "hoge7";

foreach($food as $key1=>$array){
if(!in_array("y",array_keys($array))) unset($food[$key1]);
foreach(array_keys($array) as $key2){
if($key2!=="y") unset($food[$key1][$key2]);
}
}
print_r($food);
    • good
    • 0
この回答へのお礼

回答ありがとうございます。教えてもらったプログラムで無事動きました。

お礼日時:2012/09/13 18:22

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