已掉线,重新登录

首页 > 绿虎论坛 > 杂类 > 生活 (发帖)

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

作者: @Ta

时间: 2022-11-17发布,2023-02-10修改

点击: 194

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|隐藏机器人聊天)』

1. 按理来说不是一个forEach遍历就解决的吗?
forEach下,然后再遍历value中的数组,有满足条件的值就给出外层的key
(/@Ta/2022-11-17 22:54//)

2. @雨伤,求代码
(/@Ta/2022-11-17 23:04//)

3. @幕后导演,大概这样
<?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 23:24//)

4. @雨伤,感谢
(/@Ta/2022-11-17 23:37//)

5.
$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]);
(/@Ta/2022-11-20 11:37//)

回复需要登录

8月23日 06:14 星期六

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1