2013-10-11 38 views
-4

我有数组:比较值,并获得主键/索引

 $array = array(
      3 => array(
       'first' => 'aaa', 
       'second' => '111', 
       'third' => '!!!' 
      ), 
      7 => array(
       'first' => 'bbb', 
       'second' => '222', 
       'third' => '###' 
      ), 
      9 => array(
       'first' => 'ccc', 
       'second' => '333', 
       'third' => '^^^' 
      ), 

     ); 

和三个变量:

$first = 'bbb'; 
$second = '222'; 
$third = '###'; 

,也可以是数组:

$data = array(
    'first' => 'bbb', 
    'second' => '222', 
    'third' => '###' 
); 

我想获得这些值从$ array中键入。在这个例子中应该返回7.

我该如何比较这个数组与$ first,$ second和$ third或数组$ data,并从$ array中获取这些值的key?

+0

循环,比较每个值,如果它们全部匹配,则使用当前键。这很简单。请尝试一下。 – deceze

回答

-1

试试这个:

 $array = array(
     3 => array(
      'first' => 'aaa', 
      'second' => '111', 
      'third' => '!!!' 
     ), 
     7 => array(
      'first' => 'bbb', 
      'second' => '222', 
      'third' => '###' 
     ), 
     9 => array(
      'first' => 'ccc', 
      'second' => '333', 
      'third' => '^^^' 
     ), 
    ); 

    $data = array(
     'first' => 'bbb', 
     'second' => '222', 
     'third' => '###' 
    ); 

    foreach ($array as $key => $val1) { 
     $arr_diff = array_diff($val1, $data); 

     if(empty($arr_diff)) 
     { 
      echo $key; 
     } 
    } 

foreach循环将你正确的答案。

+1

我不知道为什么一些人赞成这个答案??? 这个答案有什么问题?请简单解释一下。 –