<?php
/**
* Flatten a two-dimensional array into a 1-dimensional array.
*/
function array_flatten(array $arr) {
if(empty($arr)) { return $arr; }
return call_user_func_array("array_merge", $arr);
}
function weight_fruit($fruit) {
$weight = $fruit[2] + $fruit[3] + $fruit[4];
return $weight > 0 ? array_fill(0, $weight, $fruit[1]) : array();
}
$fruits_array = array(
array(1, "apple", 0, 0, 1),
array(2, "pear", 1, 2, 3),
array(3, "pumpkin", 0, 0, 0),
array(4, "peach", 5, 9, 0),
);
$weighted_array = array_flatten(array_map("weight_fruit", $fruits_array));
if(!empty($weighted_array)) {
$weighted_fruit = $weighted_array[rand(0, count($weighted_array))];
echo $weighted_fruit ." was chosen!\n\n";
print_r($weighted_array);
}