Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

156
Visualizações
avoid same numbers and zero in array

I have a form with that table: jsfiddle

In this form i need to enable to edit the number fields.
After submit i collect the data and write to 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__);
    }

}
?>

Before mysql insert i want to check that the $number array does not contain the same numbers and zero (like: 0,1,1,101,150).
If yes give an error to the user that the Number field need to be unique.
How can I do that the easiest way with php or javascript? thanx ;)

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

<?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>';

Output:

arrayDuplicates: duplicates found 
arrayNoDuplicates: no duplicates

array_unique is going to give you an array that contains only the unique elements. That means, if an element has duplicates, count(array_unique($array)) is going to be smaller than count($array).

Check array_unique here: https://www.php.net/manual/en/function.array-unique.php

Edit: I suggest reading other people's comments about improving your code, too.

Forgot for zero.

$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>';

To check if an element is in an array (if array contains 0, for example) you can use in_array.

Check in_array here: https://www.php.net/manual/en/function.in-array.php

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda