我想创建一个函数,当值在数组之一中时将返回键...首先我有多维数组:$stens = array( 'realistic' => array( s1 => array(10), s2 => array(11,12), s3 => array(13,14,15,16), s4 => array(17,18,19,20,21), s5 => array(22,23,24,25,26,27,28,29), s6 => array(30,31,32,33,34,35,36), s7 => array(37,48,39,40,41), s8 => array(42,43,44,45,46,47), s9 => array(48,49), s10 => array(50), ), 'research' => array( s1 => array(10,11,12,13,14), s2 => array(15), s3 => array(16,17,18,19,20), s4 => array(21,22,23,24,25,26,27,28), s5 => array(29,30,31,32,33), s6 => array(34,35,36,37,38), s7 => array(39,40,41,42), s8 => array(43,44,45,46,47), s9 => array(48,49), s10 => array(50), ));我的函数应该为每个第一个数组('realistic','research')返回键(从 s1 到 s10)。例如:我要函数的数据(原始数据)是一个数组:$raw_data = array( [realistic] => 18 [research] => 43)所以函数应该返回数组Array( [realistic] => s4, [research] => s8 )我试过了,array_search但我需要更深入地搜索,所以它不起作用。function sten( $stens, $raw_data ){ $sten = array(); foreach( $raw_data as $type => $value_s ) { foreach( $stens[$type] as $key => $array_values ) $sten[$type][$key] = array_search( $value_s, $array_values ); } return $sten; }
1 回答
ibeautiful
TA贡献1993条经验 获得超6个赞
这应该有效。对最低维度上的数组使用in_array。
$sten = array();
foreach($raw_data as $type => $value_s){
foreach($stens[$type] as $key => $array_values){
if(in_array($value_s, $array_values){
$sten[$type] = $key;
}
}
}
- 1 回答
- 0 关注
- 197 浏览
添加回答
举报
0/150
提交
取消
