2012-06-14 2 views
0

Вслед за этой question, у меня есть еще проблема - у меня есть две одинаковые ключи к югу, но они имеют различное сочетание массива в их 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 

Любые идеи?

+0

Не могли бы вы объяснить свой вопрос более подробно? Почему результат должен быть «2,0»? –

+0

Я хочу найти ключ верхнего уровня, который на самом деле '2' (я отредактировал мой вопрос). – laukok

ответ

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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^