PHP-在多维数组中搜索键

我想创建一个函数,当值在数组之一中时将返回键...


首先我有多维数组:


$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;

 }


守候你守候我
浏览 198回答 1
1回答

ibeautiful

这应该有效。对最低维度上的数组使用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;        }    }}
打开App,查看更多内容
随时随地看视频慕课网APP