如何用多个搜索条件来搜索多维数组?

2024-02-21

我想在条件中有两个值的多维数组中搜索键。

我知道如何使用单个搜索条件搜索多维数组:

$key = array_search($journee, array_column($data,'journee'));

但仅此而已。这是我的阵列设置:

Array
(
    [0] => Array
        (
            [pseudo] => titi
            [journee] => 11
            [pts] => 3
        )

    ...
    [10] => Array
        (
            [pseudo] => test
            [journee] => 10
            [pts] => 6
        )

    [11] => Array
        (
            [pseudo] => test
            [journee] => 11
            [pts] => 4
        )

)

如果我只放11 in array_search并为array_column钥匙journee,它将返回 0。

我想添加pseudo在搜索条件中(键journee and pseudo应搜索特定值)。

我将如何实现这个目标?


仅靠一个简单的函数是不可能的。

这是一个解决方案two:

$search = ['pseudo' => 'test', 'journee' => 10];
$keys = array_keys(
    array_filter(
        $array,
        function ($v) use ($search) { return $v['pseudo'] == $search['pseudo'] && $v['journee'] == $search['journee']; }
    )
);
$key = $keys[0];

但如果你需要找到one只有钥匙我建议使用foreach & break,因为您不必迭代所有值数组(使用时会发生什么array_filter)并在发现某些数据时立即停止:

$key = false;
$search = ['pseudo' => 'test', 'journee' => 10];
foreach ($array as $k => $v) {
    if ($v['pseudo'] == $search['pseudo'] && $v['journee'] == $search['journee']) {
        $key = $k;
        // key found - break the loop
        break;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用多个搜索条件来搜索多维数组? 的相关文章

随机推荐