Một số hàm tự xây dựng thường sử dụng trong PHP
Bài đăng này đã không được cập nhật trong 3 năm
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
All rights reserved