DigitalFirefly DigitalFirefly - 7 months ago 14
PHP Question

Taking an array from a multidimensional array and passing the values to variables in PHP

This code is supposed to created a multidimensional array,

shuffle
it, select the first array, and pass the four values to four different variables called $
common
,
$uncommon
,
$rare
, and
$superrare
.

<?php

//create multidimentional array
$distribution = array
(
array(115, 50, 15, 0),
array(115, 49, 16, 0),
array(115, 48, 17, 0),
array(116, 49, 15, 0),
array(116, 48, 16, 0),
array(116, 47, 17, 0),
array(117, 48, 15, 0),
array(117, 47, 16, 0),
array(117, 46, 17, 0),
array(118, 47, 15, 0),
array(118, 46, 16, 0),
array(118, 45, 17, 0),
array(119, 46, 15, 0),
array(119, 45, 16, 0),
array(119, 44, 17, 0),
array(120, 45, 15, 0),
array(120, 44, 16, 0),
array(120, 43, 17, 0),
);

//shuffle the md-array
shuffle($distribution);

//select first array from $distribution
$slice[] = array_slice($distribution ,0, 1);

//create an array for key values
$cardrarity = array('common', 'uncommon', 'rare', 'superrare');

//combine $cardrarity and $slice
$cardraritycount = array_combine($cardrarity, $slice);

//create a variable for each value in
foreach ($cardraritycount as $key => $value){
$$key = $value;
}
?>


When I view the contents of
$slice
it looks like this:

Array
(
[0] => Array
(
[0] => Array
(
[0] => 120
[1] => 43
[2] => 17
[3] => 0
)

)

)


When I try and combine
$slice
with
$cardrarity
, I get no output when I try and echo the contents. I think my problem is when I'm doing the array slice. Any help would be appreciated.

Answer

There's no need to complicate such simple things. Simply do this:

// Shuffle the array
shuffle($distribution);

// Assign values to the respective variables
list($common, $uncommon, $rare, $superrare) = $distribution[0];

// Display values
echo $common . "<br />";
echo $uncommon . "<br />";
echo $rare . "<br />";
echo $superrare . "<br />";

Here's the reference:

Comments