Home > Software engineering >  Pick a value in php array
Pick a value in php array

Time:07-28

I made this code in order to pick up a value a from an array, delete it, show the array without the deleted element and show which element has been deleted. If i run the code, the index number goes but the char stays.

Can you help me to understand where i'm wrong? What i would reach is just to have only the charset and then the charset with the missing value, but not the indexes.

    <?php
// i create the array 
$charset = range(",","|");
    echo "Original Array <br>";

// I show the original array
print_r($charset);


// i put in a variable a random number from the set given
$random= array_rand($charset,1);
// using the unset function, i delete the chosen number previously stored in the variable
unset($charset[$random]);

echo "After delete the element <br>";

// Display Results
print_r($charset);
//here show the number that has been deleted

echo "<br>";
echo "The deleted char is " .$random; 

?>







    

   

CodePudding user response:

array_rand() gets a random index not value. So the $random variable holds a random array index. So you are deleting a random character by that character's index in the array, but you never store what character that is anywhere. try storing the character in a new variable before deleting the character from the array, like this.

// i put in a variable a random number from the set given
$random= array_rand($charset,1);
// store the character i am about to delete
$deleted_character = $charset[$random];
// using the unset function, i delete the chosen number previously stored in the variable
unset($charset[$random]);

echo "After delete the element <br>";

// Display Results
print_r($charset);
//here show the number that has been deleted

echo "<br>";
echo "The deleted char is " . $deleted_character . ". It's index in the array was " . $random;
  • Related