【问题标题】:How to remove duplication in arrays? (not turn unique, but remove the next value) PHP如何删除数组中的重复? (不转唯一,但删除下一个值) PHP
【发布时间】:2014-11-05 22:04:03
【问题描述】:

我会尽量说得非常具体。看,我有一个发送数组的输入:

echo "<input type='hidden' name='valortot[]'  class='valor$rowid' disabled>";

单击单选按钮后,禁用将被删除并设置值:

单选按钮:

<input  class='radio$rowid'  name='".$codintercot."[]' value='$mpreco' type='radio' onclick='calcval($rowid,$valortot)'>

$rowid是每一行的id,$valortot是javascript得到的值,点击后插入隐藏输入。

Javascript:

 <script type="text/javascript">

             function calcval(valor,valortot){

                var valortot = valortot;
                var rowid = valor;
                var calcval = document.getElementsByClassName("valor"+rowid);

                for(var i = 0; i < calcval.length; i++) {
                    calcval[i].value=valortot;
                    calcval[i].disabled = false;
                }


             }

我的问题是,当我发送它们被复制的数组时,可能存在重复项,例如 2 个具有相同值的项,但不是像这样的值旁边的副本:

Array ( [0] => 2.44 [1] => 2.44 [2] => 3.7 [3] => 32.92 [4] => 32.92 )

奇怪,2.44 和 32.92 被复制了,但 3.7 没有,我怎么能跳过克隆?

编辑:

哦,我犯规了,我同时启用了 3,而我应该只启用 1。但还是谢谢你们。

【问题讨论】:

    标签: javascript php jquery arrays duplicate-data


    【解决方案1】:

    你检查了吗:

    http://php.net/manual/en/function.array-unique.php

    <?php
        $input = array("a" => "green", "red", "b" => "green", "blue", "red");
        $result = array_unique($input);
        print_r($result);
    ?>
    

    结果:

    Array
    (
        [a] => green
        [0] => red
        [1] => blue
    )
    

    【讨论】:

      【解决方案2】:

      由于您使用的是 Javascript,因此您始终可以使用 .indexOf(value)。

      for(var i = 1; i < array.length(); i++){
          if(array.indexOf(value) == -1) {
              array.push(value);
          } else {
              // Do nothing
          }
      }
      

      现在您不需要 else 语句,但它可以为您提供想法。此外,从 1 开始循环,这样如果数组位于元素 0(也称为空)处,则不会费心检查重复结果。

      祝你好运!

      编辑 - 错误的逻辑。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-20
        • 2019-07-14
        • 2014-09-25
        • 1970-01-01
        相关资源
        最近更新 更多