0

我有一个像这样的关联数组。

$lang['lbl_mylabel1'] = array('key1' => 'value1');
$lang['lbl_mylabel2'] = array('key2' => 'value1');
$lang['lbl_mylabel3'] = array('key3' => 'value1');
$lang['lbl_mylabel4'] = array('key4' => 'value2');
$lang['lbl_mylabel5'] = array('key5' => 'value3');

我有一个名为的变量value1,我想通过它比较子数组的值并返回所有值为value1.

那么我如何使用array_intersect或任何可能的有效方法来返回$lang array带有 values1 的元素。

上面代码的答案应该是$lang array.

4

2 回答 2

2

我猜你的意思是:

$result = array();
$value1 = 'value1';
foreach($lang['lbl_mylabel1'] as $la)
{
   if(in_array($value1)) 
   {
      $result[] = $la;
   }
}
于 2014-01-16T09:33:12.113 回答
0

以下代码将保留原始 $lang 数组的结构:

$find = 'value1';
$result = array_filter($lang, function($rec) use ($find) {
    return in_array($find, $rec);
});

$result 在哪里:

array (
  'lbl_mylabel1' => 
  array (
    'key1' => 'value1',
  ),
  'lbl_mylabel2' => 
  array (
    'key2' => 'value1',
  ),
  'lbl_mylabel3' => 
  array (
    'key3' => 'value1',
  ),
)
于 2014-01-16T09:37:53.543 回答