我有一个像这样的关联数组。
$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
的元素返回给value1。
上述代码的答案应该是$lang array
中的前3个元素。
答案 0 :(得分:2)
我想你的意思是:
$result = array();
$value1 = 'value1';
foreach($lang['lbl_mylabel1'] as $la)
{
if(in_array($value1))
{
$result[] = $la;
}
}
答案 1 :(得分: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',
),
)