Eroare array

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

contphp
New Member
Mesaje: 2
Membru din: Lun Mai 16, 2016 3:14 pm

Eroare array

Mesajde contphp » Lun Mai 16, 2016 3:27 pm

Salut si bine v-am gasit!

Am probleme cu un script. Vreau sa aleg doua numere, aleator dintr-un sir de numere despartite de virgule, introduse intr-un formular.
Teoretic functioneaza dar doar daca sirul este introdus direct in fisier. Cand este luat cu $_POST da eroarea

Cod: Selectaţi tot

Warning: array_rand(): Second argument has to be between 1 and the number of elements in the array in


Codul fisierului este

Cod: Selectaţi tot

if(isset($_POST['submitted'])){
   $numbers = $_POST['numbers'];
   $string = array($numbers);
   $rand = array_rand($string, 2);
   echo $string[$rand[0]] . "\n";
   echo $string[$rand[1]] . "\n";
} else {
?>
<form action="" method="post">
<input type="text" name="numbers" />
<input type="submit" name="submitted" value="Submit" />
</form>


Multumesc!



MarPlo
Senior Member
Mesaje: 885
Membru din: Mie Sep 24, 2008 9:32 am
Localitate: Braila
Contact:

Re: Eroare array

Mesajde MarPlo » Lun Mai 16, 2016 4:35 pm

Salut
Eroarea spune ca al doilea argument a lui array_rand() (adica 2) sa fie maxim cat numarul de elemente de la array-ul din primul element.
Ar functiona cum vrei daca folosesti explode() ca sa adaugi numerele primite in array, si verifici numarul lor.

Cod: Selectaţi tot

if(isset($_POST['numbers'])){
 
$nrs explode(','$_POST['numbers']);
 if(
count($nrs) >1){
   
$rand array_rand($nrs2);
   echo 
$nrs[$rand[0]]. PHP_EOL;
   echo 
$nrs[$rand[1]]. PHP_EOL;
 }

contphp
New Member
Mesaje: 2
Membru din: Lun Mai 16, 2016 3:14 pm

Re: Eroare array

Mesajde contphp » Lun Mai 16, 2016 5:29 pm

MarPlo scrie:Salut.
Ar functiona cum vrei daca folosesti explode() ca sa adaugi numerele primite in array, si verifici numarul lor.


Merge cu explode dar tot nu inteleg de ce nu a mers, avand in vedere ca daca inlocuiam $numbers cu un sir de numere...mergea.

Multumesc pentru raspuns!

FredX
New Member
Mesaje: 2
Membru din: Mie Mai 18, 2016 11:00 am

Re: Eroare array

Mesajde FredX » Mie Mai 18, 2016 11:58 am

Dupa ce folosesti array_rand, adauga

Cod: Selectaţi tot

var_dump($string);
var_dump($rand);

Vei vedea ca $string e un array cu un element de tip string (array(1) { [0]=> string(5) "1,2,3" }), iar $rand e null pentru ca ai incercat sa scoti doua elemente dintr-un array cu un singur element.


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 76 vizitatori