我会尽量说得非常具体。听着,我有一个发送数组的输入:
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;
}
}
我的问题是,当我发送被复制的数组时,可能存在重复项,比如两个具有相同值的itens,但不是一个值如下的副本:
Array ( [0] => 2.44 [1] => 2.44 [2] => 3.7 [3] => 32.92 [4] => 32.92 )
奇怪的是,复制了2.44和32.92,但没有复制3.7,我怎么能跳过克隆?
编辑:
哦,我犯规了,我同时启用了3,而我应该只启用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
)
由于您使用的是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(也就是空的),if就不会麻烦检查重复的结果。
祝你好运!
编辑-逻辑错误。