Q:

Write a PHP program to group the elements of an array based on the given function

0

Write a PHP program to group the elements of an array based on the given function

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

<?php
// License: https://bit.ly/2CFA5XY
function groupBy($items, $func)
{
    $group = [];
    foreach ($items as $item) {
        if ((!is_string($func) && is_callable($func)) || function_exists($func)) {
            $key = call_user_func($func, $item);
            $group[$key][] = $item;
        } elseif (is_object($item)) {
            $group[$item->{$func}][] = $item;
        } elseif (isset($item[$func])) {
            $group[$item[$func]][] = $item;
        }
    }
    return $group;
}
print_r(groupBy(['one', 'two', 'three', 'four'], 'strlen'));

?>

Sample Output:

Array
(
    [3] => Array
        (
            [0] => one
            [1] => two
        )

    [5] => Array
        (
            [0] => three
        )

    [4] => Array
        (
            [0] => four
        )

)

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Similar questions


need a help?


find thousands of online teachers now