当前位置: 首页 > 知识库问答 >
问题:

二维数组中的php搜索[重复]

戎鹏云
2023-03-14

我开发了一个程序,获取包含用户id及其技能的用户技能数组,该数组如下:

array(4) {
   [17]=>
     array(3) {
        [0]=>
          string(8) "word"
        [1]=>
          string(10) "power point"
        [2]=>
          string(28) "excel"
       }
   [16]=>
    array(3) {
    [0]=>
     string(14) "english
    [1]=>
     string(14) "french"
    [2]=>
    string(12) "farsi"
  }
 }

关键是user_id,值是技能数组,现在我想搜索有两个值的user_id:english或word,我希望返回17,16,我该怎么做,谢谢你的帮助:)

共有1个答案

归和惬
2023-03-14

使用array\u intersect函数的解决方案:

$arr = [ 17 => ["word", "power point", "excel"], 16 => ["english", "french", "farsi"] ];
$search_keys = ["english", "word"];
$keys = [];

foreach ($arr as $k => $v) {
    if (array_intersect($search_keys, $v)) $keys[] = $k;
}

print_r($keys);

输出:

Array
(
    [0] => 17
    [1] => 16
)
 类似资料:
  • 问题内容: 我有一个要在其中搜索并获取数组键的数组。 例子 假设我们有以下二维数组: 函数调用(第一个用户的uid)应返回。 函数调用应返回。 我尝试进行循环,但是我想要更快的执行代码。 问题答案: function searchForId($id, $array) { foreach ($array as $key => $val) { if ($val[‘uid’] === $id) { re

  • 我有一个数组,我想在其中搜索,并获取数组的键。 假设我们有以下2维数组: 函数调用(第一个用户的uid)应返回。 函数调用应该返回。 我试着做循环,但我想要一个执行速度更快的代码。

  • 我想在数组中搜索,就像当我用“m”新数组搜索时一样。 我怎么能那么做? 有什么建议吗? 谢谢

  • 我有这个数组,当我搜索uid时,我需要返回找到密钥的数组,所以如果我搜索“4048”,我应该得到第二个数组。 有什么帮助吗? 提前谢谢

  • 本文向大家介绍PHP二维数组去重算法,包括了PHP二维数组去重算法的使用技巧和注意事项,需要的朋友参考一下 需求 现在有下面一组二维数组: 需要将处于第二维键名为name,其值相同的数组的value合并,形成一个新的数组。 比如上面代码中的name为fileds_510的两个二维数组,就应该合并为一个值为足球,棒球的数组。 思路 提到数组,再PHP中我们首先想到了循环,那么这里显然比较适合使用fo

  • 本文向大家介绍php实现搜索一维数组元素并删除二维数组对应元素的方法,包括了php实现搜索一维数组元素并删除二维数组对应元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现搜索一维数组元素并删除二维数组对应元素的方法。分享给大家供大家参考。具体如下: 定义一个一维数组一个二维数组如下 需要实现从$products数组中查找元素是否和数组$fruit元素有交集,如果有的话保留