Một số hàm tự xây dựng thường sử dụng trong PHP

Cập nhật: Lượt xem: 682 [ PHP ]

Một số hàm tự xây dựng thường sử dụng trong PHP.

Một số hàm tự xây dựng thường sử dụng trong PHP

isLowerCase

Trả về true nếu chuỗi đã cho là chữ thường, ngược lại là false.

function isLowerCase($string)
{
    return $string === strtolower($string);
}
isLowerCase('Morning shows the day!'); // false
isLowerCase('hello'); // true

groupBy

Nhóm các phần tử của một mảng dựa trên chức năng đã cho.

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;
}
groupBy(['one', 'two', 'three'], 'strlen'); // [3 => ['one', 'two'], 5 => ['three']]

median

Trả về giá trị trung bình của một mảng số.

function median($numbers)
{
    sort($numbers);
    $totalNumbers = count($numbers);
    $mid = floor($totalNumbers / 2);

    return ($totalNumbers % 2) === 0 ? ($numbers[$mid - 1] + $numbers[$mid]) / 2 : $numbers[$mid];
}
median([1, 3, 3, 6, 7, 8, 9]); // 6
median([1, 2, 3, 6, 7, 9]); // 4.5

once

Chỉ gọi một hàm một lần.

function once($function)
{
    return function (...$args) use ($function) {
        static $called = false;
        if ($called) {
            return;
        }
        $called = true;
        return $function(...$args);
    };
}
$add = function ($a, $b) {
    return $a + $b;
};

$once = once($add);

var_dump($once(10, 5)); // 15
var_dump($once(20, 10)); // null

orderBy

Sắp xếp tập hợp các mảng hoặc đối tượng theo khóa.

function orderBy($items, $attr, $order)
{
    $sortedItems = [];
    foreach ($items as $item) {
        $key = is_object($item) ? $item->{$attr} : $item[$attr];
        $sortedItems[$key] = $item;
    }
    if ($order === 'desc') {
        krsort($sortedItems);
    } else {
        ksort($sortedItems);
    }

    return array_values($sortedItems);
}
orderBy(
    [
        ['id' => 2, 'name' => 'Joy'],
        ['id' => 3, 'name' => 'Khaja'],
        ['id' => 1, 'name' => 'Raja']
    ],
    'id',
    'desc'
); // [['id' => 3, 'name' => 'Khaja'], ['id' => 2, 'name' => 'Joy'], ['id' => 1, 'name' => 'Raja']]

take

Trả về một mảng có n phần tử bị loại bỏ từ đầu.

function take($items, $n = 1)
{
    return array_slice($items, 0, $n);
}
take([1, 2, 3], 5); // [1, 2, 3]
take([1, 2, 3, 4, 5], 2); // [1, 2]

gcd

Tính ước số chung lớn nhất giữa hai hoặc nhiều số.

function gcd(...$numbers)
{
    if (count($numbers) > 2) {
        return array_reduce($numbers, 'gcd');
    }

    $r = $numbers[0] % $numbers[1];
    return $r === 0 ? abs($numbers[1]) : gcd($numbers[1], $r);
}
gcd(8, 36); // 4
gcd(12, 8, 32); // 4

last

Trả về phần tử cuối cùng trong một mảng.

function last($items)
{
    return end($items);
}
last([1, 2, 3]); // 3

startsWith

Kiểm tra xem một chuỗi có bắt đầu bằng một chuỗi con nhất định hay không.

function startsWith($haystack, $needle)
{
    return strpos($haystack, $needle) === 0;
}
startsWith('Hi, this is me', 'Hi'); // true