为了账号安全,请及时绑定邮箱和手机立即绑定

PHP-在多维数组中搜索键

PHP-在多维数组中搜索键

PHP
守候你守候我 2022-01-08 20:47:08
我想创建一个函数,当值在数组之一中时将返回键...首先我有多维数组:$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;

        }

    }

}


查看完整回答
反对 回复 2022-01-08
  • 1 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号