• ベストアンサー

インデックス元に値を返す関数

if( array_key_exists('id',$array) ){    $ids[] = $array[id]; } 上の記述が面倒です。 array_key_exists()の戻り値がtrueでなくて値ならイイのに。。。 インデックスで探して、値を返す関数って無いでしょうか? 御回答お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>array_key_exists()の戻り値がtrueでなくて値ならイイのに。。。 もしそうだったら $ids[] = array_key_exists('id',$array); のように使うということですか? その場合、キーが見つからない場合の動作はどうなりますか? そんなかんじなら、単に $ids[] = $array['id']; でいいのでは?

takatokoko
質問者

お礼

御回答ありがとう御座います。 仰るとおり、 $ids[] = $array['id']; にしたいんですが、 実際にやりたい処理は、「$array」の部分が「配列を返す関数」なんです。 もし、array_key_exists()が値を返すなら、↓のような記述ができるんですが。。。 $ids[] = array_key_exists('id',function()); 簡単に言うと、関数が配列を吐いた時、インデックス指定して受け取りたいんでが、スマートな方法ありますでしょうか?

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#2>関数が配列を吐いた時、インデックス指定して受け取りたいんでが、スマートな方法ありますでしょうか? #3に賛成

takatokoko
質問者

お礼

引数を増やすのに抵抗はありますが、確かにスマートですね(笑) 自分が求めている関数は、微妙な仕様なので標準関数には、 ありそうにないですね; ありがとうございます。

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.3

失敗でfalseが返ると、値にfalseがある時に困ります。 関数が配列を返すなら関数にキーを渡せばどうでしょうか。 $ids[] = function('id');

takatokoko
質問者

お礼

ありがとうございます。 それが最良なようですね。 感謝ですm(__)m

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

値が返ってきたら、セットされているかどうかも判別できないかと。

takatokoko
質問者

お礼

マッチしない時だけ、falseを返して欲しいんですが、やはり自作関数しか無いですかね; 自作するほどの処理ではありませんが; 御回答ありがとう御座います。

関連するQ&A