当前位置: 首页 > 面试题库 >

获取数组中重复值的键

林泰平
2023-03-14
问题内容

我有以下数组:

$myarray = Array("2011-06-21", "2011-06-22", "2011-06-22", "2011-06-23", "2011-06-23", "2011-06-24", "2011-06-24", "2011-06-25", "2011-06-25", "2011-06-26");
var_dump($myarray);

结果:

Array (
    [0] => 2011-06-21
    [1] => 2011-06-22
    [2] => 2011-06-22
    [3] => 2011-06-23
    [4] => 2011-06-23
    [5] => 2011-06-24
    [6] => 2011-06-24
    [7] => 2011-06-25
    [8] => 2011-06-25
    [9] => 2011-06-26
)
  1. 现在如何显示具有重复值的键?在此函数不应返回([0],[9]),因为没有重复的值。
  2. 如何找到相同值的键,例如 对于“ 2011-06-25”,应返回[7],[8]

问题答案:
function get_keys_for_duplicate_values($my_arr, $clean = false) {
    if ($clean) {
        return array_unique($my_arr);
    }

    $dups = $new_arr = array();
    foreach ($my_arr as $key => $val) {
      if (!isset($new_arr[$val])) {
         $new_arr[$val] = $key;
      } else {
        if (isset($dups[$val])) {
           $dups[$val][] = $key;
        } else {
           $dups[$val] = array($key);
           // Comment out the previous line, and uncomment the following line to
           // include the initial key in the dups array.
           // $dups[$val] = array($new_arr[$val], $key);
        }
      }
    }
    return $dups;
}

函数名称显然很长;)

现在$ dups将包含一个由重复值键控的多维数组,其中包含每个重复项的键,如果您将“ true”作为第二个参数发送,它将返回没有重复值的原始数组。

或者,您可以将原始数组作为参考传递,并在返回重复数组时进行相应的调整



 类似资料:
  • 我想从你那里得到电话号码 使用JavaScript/jQuery。 这个系列可能会更多。

  • 我有以下数组 我想从这个数组中得到唯一的值。所以我希望我的结果是这样的 我使用了数组唯一函数,但无法得到结果 如果我有两个索引,这是有效的,但是对于多个索引呢?

  • 如果条件匹配,我想从多数组中获取变量的特定值。 打印阵列时: 给出如下数组: 如果ID与21匹配,我正在尝试获取客户号码

  • 我肯定这是以前问过的,如果重复,对不起。假设我有以下数据框: 在“key”上执行groupby,我知道我们可以执行以下操作: 获取数组中所有'拆分'数据的最简单方法是什么?: 我不一定只按一个键进行分组,而是使用其他几个索引(例如“年”和“月”),这就是为什么我想使用groupby函数,但保留数组中所有分组的值。

  • 我收藏了这样的文件: 我想找到所有的有效载荷。_id,其状态为真/假。预期结果是 到目前为止,我有这样的东西。 不确定如何为数组中的元素添加条件。

  • 我有一个脚本,它读取一个JSON文件,然后用每个元素的name属性填充数组。 HTML JSON 我无法访问此数组的特定索引。控制台日志总是返回未定义的。我尝试在我的ajax调用之后添加,但它也不起作用。