0

この質問に続いて、さらに問題があります。2つの同じサブキーがありますが、variantキー内の配列の組み合わせが異なります。たとえば、

Array
(
    [1] => Array
        (
            [b] => Array
                (
                    [quantity_request] => 1
                    [time_created] => 1339688613
                    [variant] => Array
                        (
                         [0] => x
                         [1] => y
                        )

                )

        )

    [2] => Array
        (
            [b] => Array
                (
                    [quantity_request] => 1
                    [time_created] => 1339688631
                    [variant] => Array
                        (
                         [0] => x
                         [1] => z
                        )

                )

        )

    [3] => Array
        (
            [c] => Array
                (
                    [quantity_request] => 1
                    [time_created] => 1339688959
                    [variant] => Array
                        (
                        )

                )

        )

)

だから、どうすればこのアイテムの一致を見つけることができますか?

    [b] => Array
                        (
                            [quantity_request] => 1
                            [time_created] => 1339688631
                            [variant] => Array
                                (
                                 [0] => x
                                 [1] => z
                                )

                        )

    function get_letter($letter,$array)
        {
            foreach($this->content as $k => $v)
            {
                if(array_key_exists($letter, $v))
                {
                    return $k;

                }
            }
            return false;

        }

list($key,$different) = get_letter('b',array("x","z")); // return 1

一致する場合は、このような結果が必要です。

2

何か案は?

4

2 に答える 2

0

以下を追加するだけです:

if ($v['variant'] == $array)

ステートメント内で、配列を引数として渡されたものとif比較します。variant

function get_letter($letter, $array)
{
     foreach($this->content as $k => $v)
     {
          if(array_key_exists($letter, $v))
          {
               if ($v['variant'] == $array)
                   return $k;
          }
     }

     return false;
}
于 2012-06-14T17:57:31.087 に答える
0

配列は値ごとに比較されるため、これは問題なく機能するはずです。

$key = array_search($needle, $haystack);

$needleキーを見つけたい配列はどこにありますか。

http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.types

于 2012-06-14T17:53:07.013 に答える