我想創建一個函數,當值在數組之一中時將返回鍵...首先我有多維數組:$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 關注
- 187 瀏覽
添加回答
舉報
0/150
提交
取消