[ create a new paste ] login | about

Link: http://codepad.org/fF9KclEm    [ raw code | output | fork ]

PHP, pasted on Jan 17:
<?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);
}


Output:
pear was chosen!

Array
(
    [0] => apple
    [1] => pear
    [2] => pear
    [3] => pear
    [4] => pear
    [5] => pear
    [6] => pear
    [7] => peach
    [8] => peach
    [9] => peach
    [10] => peach
    [11] => peach
    [12] => peach
    [13] => peach
    [14] => peach
    [15] => peach
    [16] => peach
    [17] => peach
    [18] => peach
    [19] => peach
    [20] => peach
)


Create a new paste based on this one


Comments: