Tengo un formulario con esa tabla: jsfiddle
En este formulario, necesito habilitar la edición de los campos numéricos.
Después de enviar, recopilo los datos y escribo en 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__); } } ?> Antes de insertar mysql, quiero verificar que la matriz de $ number no contenga los mismos números y cero (como: 0,1,1,101,150).
En caso afirmativo, proporcione un error al usuario de que el campo Número debe ser único.
¿Cómo puedo hacer eso de la manera más fácil con php o javascript? gracias ;)
<?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>';Producción:
arrayDuplicates: duplicates found arrayNoDuplicates: no duplicates array_unique le dará una matriz que contiene solo los elementos únicos. Eso significa que, si un elemento tiene duplicados, count(array_unique($array)) será más pequeño que count($array) .
Compruebe array_unique aquí: https://www.php.net/manual/en/function.array-unique.php
Editar: también sugiero leer los comentarios de otras personas sobre cómo mejorar su código.
Olvidé por cero.
$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>'; Para verificar si un elemento está en una matriz (si la matriz contiene 0, por ejemplo), puede usar in_array .
Compruebe in_array aquí: https://www.php.net/manual/en/function.in-array.php