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

array1[0]['DATE']="20120701",array1[1]['DATE']="20120702",以下同様にデータが入っています。
'20120702'を検索して添え字1を取得したいのです。
array_search('20120702',$array1['DATE'])としたのですがうまくいきません。
どう指定すればいいのでしょうか。
よろしくお願いします。

A 回答 (2件)

マニュアルの説明で「再帰処理します」と明示されていないものは基本的に再帰処理はしません。



>$array1=array(
>0=>array('DATE' => '20120701')
>,1=>array('DATE' => '20120702')
>);

二次元配列にしたという段階で「一発で検索する」というのは諦めるべき(そういうデメリットとメリットを考慮してデータの持ち方を決める)。

$result = array();
foreach ($array1 as $key=>$val) {
if (array_search('20120702', $val)) {
$result[] = $key;
}
}

とか、いっそ

$result = array();
foreach ($array1 as $key=>$val) {
if ($val['DATE'] == '20120702') { $result[] = $key; }
}

でしょ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
二次元配列では、「一発検索」できないのですね。
配列の持ち方を検討します。

お礼日時:2012/07/26 14:18

そのデータの持ち方ならこうじゃないですか?



<?PHP
$array1=array(
0=>array('DATE','20120701')
,1=>array('DATE','20120702')
);
print array_search(array('DATE','20120702'),$array1);
?>

この回答への補足

回答ありがとうございます。配列は次のようになります。
$array1=array(
0=>array('DATE' => '20120701')
,1=>array('DATE' => '20120702')
);
この場合、どうなるでしょうか?
その式の解説もしていただけると有難いです。

補足日時:2012/07/26 13:41
    • good
    • 0

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