php – Generate random number for an array

Question:

I have a foreach that fetches data from a table and insert into another table. I need to count the number of foreach records, then generate a random sequence, and feed an insert field.

See the code:

$dados2 = connection::select('SELECT * FROM tab1');
foreach ($dados2 as $reg) {   
    $campo1 = $reg['campo1'];
    $campo2 = $reg['campo2'];    
    $sequencia_aleatoria = '';                     
}
connection::exec("insert into tab2(campo1,campo2,sequencia_aleatoria) values('$campo1','$campo2','$sequencia_aleatoria')");

I hope you understood my question.

Answer:

uses PHP's uniqueid function, serial something like:

$dados2 = connection::select('SELECT * FROM tab1');
$contagem=0;

foreach ($dados2 as $reg) {   
    $campo1 = $reg['campo1'];
    $campo2 = $reg['campo2'];    
    $contagem++;                  
}

$sequencia_aleatoria=rand(0,$contagem);
connection::exec("insert into tab2(campo1,campo2,sequencia_aleatoria) values('$campo1','$campo2','$sequencia_aleatoria')");

the uniqid() function generates a hash based on milliseconds so there is no possibility of repetition.

I think your code would then look like this:

$dados2 = connection::select('SELECT * FROM tab1');
$numero=count(dados2);

foreach ($dados2 as $reg) {   
    $campo1 = $reg['campo1'];
    $campo2 = $reg['campo2'];    
    $sequencia_aleatoria=rand(0,$numero);

    connection::exec("insert into tab2(campo1,campo2,sequencia_aleatoria) values('$campo1','$campo2','$sequencia_aleatoria')");   
    unset($sequencia_aleatoria);    
}

run it that works

<?php
$contagem=420; // aqui iioria o count($resultado);
for($i=0;$i<=$contagem;$i++){
    echo rand(0,$contagem)."<br>";
}
?>

the logic is the same and it's happening.

test online here http://phptester.net/

instead of you doing a foreach do a for

$dados2 = connection::select('SELECT * FROM tab1');
$numero=count(dados2);

for($i=0;$i<$numero;i++) { 
    $reg=$dados2[$i];  
    $campo1 = $reg['campo1'];
    $campo2 = $reg['campo2'];    
    $sequencia_aleatoria=rand(0,$numero);

    connection::exec("insert into tab2(campo1,campo2,sequencia_aleatoria) values('$campo1','$campo2','$sequencia_aleatoria')");   
    unset($sequencia_aleatoria);    
}
Scroll to Top