0

多次元配列の値を検索するにはどうすればよいですか。

[created] 内の特定の日付 Ex(2012-07-25) を探しているすべてのキーを受け取りたい

array[0][0] と array[0][1] を受け取る

Array
(
[0] => Array
    (
        [0] => Array
            (
                [id_store] => 3
                [id_product] => 11
                [monitored] => 0
                [created] => 2012-07-25
            )

        [1] => Array
            (
                [id_store] => 3
                [id_product] => 12
                [monitored] => 0
                [created] => 2012-07-25
            )

        [2] => Array
            (
                [id_store] => 4
                [id_product] => 11
                [monitored] => 0
                [created] => 2012-07-26
            )
    )

)
4

2 に答える 2

2

このようなものは次のように動作するはずarray_filter()です:

$target = '2012-07-25';
$matches = array_filter( $array[0], function( $el) use( $target) {
    return $el['created'] == $target;
);
于 2012-07-26T21:03:10.333 に答える
0

これをテストしていませんが、動作するはずです:

$results = search_date($my_array, $my_date);

`

function search_date($array, $date, &$result=array())
{
    foreach($array as $key=>$value)
    {
        if($key == 'created' && $value == $date)
        {
            $result[]=$array;
            continue;
        }
        if(is_array($item))
        {
            search_date($item, $date, $result);
        }
    }
    return $result;
}

個人的には、あなたのデータ形式を完全に捨てて、そのタスクにより適したオブジェクト モデルを使用します。

于 2012-07-26T21:09:31.390 に答える