0

$a と $b の 2 つの配列があります。

$a = Array
    (
        [0] => Array
            (
                [a] => 1
                [d] => CONTACT
                [f] => 2
            )

    )
and
    $b = Array
(
    [0] => Array
        (
            [a] => 1
            [b] => 1
            [c] => 4
            [d] => CONTACT
            [e] => 2012-08-07  05:56:18
            [f] => 2
        )

    [1] => Array
        (
            [a] => 2
            [b] => 3
            [c] => 4
            [d] => CONTACT
            [e] => 2012-08-07  05:56:18
            [f] => 1
        )

    [2] => Array
        (
            [a] => 2
            [b] => 4
            [c] => 4
            [d] => CONTACT
            [e] => 2012-08-07  05:56:18
            [f] => 1
        )


)

最初の配列の a,d,f フィールドが 2 番目の配列と一致する場合、2 番目の配列の親配列を削除します。この場合、私はやりたいunset($b[0]);.ループなしでこれを行うにはどうすればよいですか? できない場合は、ループで解決策を教えてください。cakephp にメソッドはありますか?

4

2 に答える 2

0

このようなもの?

$count = count($b)
for($i = 0; $i < $count; $i++)
{
    foreach($a[0] as $c => $v)
    {
        $match = true;
        if($b[$i][$c] != $v)
        {
            $match = false;
        }
        if($match)
            unset($b[$i]);
    }

}

それでうまくいくかもしれませんが、もっと速い方法があると思います...しかし、500行が問題になるとは思いません。

于 2012-08-07T06:43:06.597 に答える