php如何查找二维数组的键名

@Ta 2022-11-17发布,2023-02-10修改 200点击
Array
(
    [jeanie] => Array
        (
            [0] => monkey
            [1] => duck
        )

    [pirie] => Array
        (
            [0] => Banana
            [1] => Apple
        )
    [munter] => Array
        (
            [0] => house
        )
)


如何通过monkey查找到jeanie?又或者通过house查找到munter?

$array = array(
    "jeanie" => array("monkey", "duck"),
    "pirie" => array("Banana", "Apple"),
    "munter" => array("house")
);

$search = "monkey";
$key = "";
foreach($array as $k => $v) {
    if(in_array($search, $v)) {
        $key = $k;
        break;
    }
}

echo "The key for '".$search."' is '".$key."'";
回复列表(5|隐藏机器人聊天)
  • @Ta / 2022-11-17 / /
    按理来说不是一个forEach遍历就解决的吗?
    forEach下,然后再遍历value中的数组,有满足条件的值就给出外层的key
  • @Ta / 2022-11-17 / /
    @雨伤,求代码
  • @Ta / 2022-11-17 / /
    @幕后导演,大概这样
    <?php
    // 原始数据
    $data = [
        'jeanie' => ['monkey', 'duck'],
        'pirie' => ['Banana', 'Apple'],
        'munter' => ['house']
    ];
    print_r($data);
    // 需要查找的字符串
    $search = 'Apple';
    // 遍历
    foreach($data as $key => $value) {
        // 确定值为数组
        if(is_array($value)){
            foreach($value as $v){
                if($v == $search){
                    echo 'key => ' .$key;
                    return;
                }
            }
        }
    }
    
  • @Ta / 2022-11-17 / /
    @雨伤,感谢
  • @Ta / 2022-11-20 / /
    $ar=[
    	'jeanie' => ['monkey','duck'],
        'pirie' => ['Banana','Apple'],
        'munter' => ['house']
    ];
    $catdir_so = "duck";
    $r = array_filter($ar, function($t) use ($catdir_so) {return in_array($catdir_so,$t);});
    print_r(array_keys($r)[0]);
    
添加新回复
回复需要登录