我有一个表格:jsfiddle
在此表单中,我需要启用以编辑数字字段
提交后,我收集数据并写入mysql。
<?php
foreach ($_POST['number'] as $key => $val)
{
$number = $_POST['number'][$key];
$name = $_POST['name'][$key];
$description = $_POST['description'][$key];
if (!empty($number))
{
$query = "INSERT INTO TEST SET date=NOW(), id='$number', name='$name', description='$description'";
$insert = $connect->query($query) or die($connect->error . __LINE__);
}
}
?>
在mysql插入之前,我想检查$number数组是否包含相同的数字和零(如:0,1,1101150(
如果是,则向用户提供一个错误,即数字字段必须是唯一的
如何使用php或javascript以最简单的方式做到这一点?thanx;(
<?php
$arrayDuplicates = [1, 2, 3, 1, 2, 3, 1, 2, 3];
$arrayNoDuplicates = [1, 2, 3, 4];
echo 'arrayDuplicates: ';
if(count($arrayDuplicates) != count(array_unique($arrayDuplicates)))
echo 'duplicates found <br>';
else echo 'no duplicates <br>';
echo 'arrayNoDuplicates: ';
if(count($arrayNoDuplicates) != count(array_unique($arrayNoDuplicates)))
echo 'duplicates found <br>';
else echo 'no duplicates <br>';
输出:
arrayDuplicates: duplicates found
arrayNoDuplicates: no duplicates
array_unique
将为您提供一个仅包含唯一元素的数组。这意味着,如果一个元素有重复项,则count(array_unique($array))
将小于count($array)
。
在此处检查array_unique
:https://www.php.net/manual/en/function.array-unique.php
编辑:我建议阅读其他人关于改进代码的评论。
忘记零。
$arrayZero = [0, 1, 2, 3];
$arrayNoZero = [1, 2, 3];
echo 'arrayZero: ';
if(in_array(0, $arrayZero)) echo 'has zero. <br>';
else echo 'no zero. <br>';
echo 'arrayNoZero: ';
if(in_array(0, $arrayNoZero)) echo 'has zero. <br>';
else echo 'no zero. <br>';
要检查元素是否在数组中(例如,如果数组包含0(,可以使用in_array
。
在此处检查in_array
:https://www.php.net/manual/en/function.in-array.php