Chuyển tới nội dung chính
Phiên bản: 8.0.0

Array

Namespace: Illuminate\Support\Arr
Alias ngắn: \Arr
Tài liệu tham khảo: Laravel Array Helpers

SkillDo CMS v8 sử dụng trực tiếp Illuminate\Support\Arr của Laravel. Bạn có thể gọi thẳng bằng alias Arr:: mà không cần use.

Arr::getArr::exceptArr::query
Arr::hasArr::existsArr::random
Arr::hasAnyArr::firstArr::set
Arr::addArr::lastArr::shuffle
Arr::collapseArr::onlyArr::where
Arr::crossJoinArr::isAssocArr::forget
Arr::divideArr::prepend
Arr::dotArr::pull

Arr::get()

Hàm Arr::get lấy giá trị từ mảng con sâu bên trong sử dụng kí hiệu "dot":

$array = ['products' => ['desk' => ['price' => 100]]];
$price = Arr::get($array, 'products.desk.price');
// 100

Hàm Arr::get cũng nhận một giá trị mặc định, và trả lại nếu như một khoá không tìm thấy:

$discount = Arr::get($array, 'products.desk.discount', 0);
// 0

Arr::has()

Hàm Arr::has kiểm tra xem một item có tồn tại trong mảng hay không sử dụng kí hiệu "dot":

$array = ['product' => ['name' => 'Desk', 'price' => 100]];
$contains = Arr::has($array, 'product.name');
// true

$contains = Arr::has($array, ['product.price', 'product.discount']);
// false

Arr::hasAny()

Hàm Arr::hasAny kiểm tra xem bất kỳ một item trong mảng cần kiếm có tồn tại trong mảng tìm kiếm hay không sử dụng kí hiệu "dot":

$array = ['product' => ['name' => 'Desk', 'price' => 100]];

$contains = Arr::hasAny($array, 'product.name');
// true

$contains = Arr::hasAny($array, ['product.name', 'product.discount']);
// true

$contains = Arr::hasAny($array, ['category', 'product.discount']);
// false

Arr::add()

Hàm Arr::add thêm một cặp key / value vào trong mảng nếu key đó chưa tồn tại trong array:

$array = Arr::add(['name' => 'Desk'], 'price', 100);
// ['name' => 'Desk', 'price' => 100]
$array = Arr::add(['name' => 'Desk', 'price' => null], 'price', 100);
// ['name' => 'Desk', 'price' => 100]

Arr::collapse()

Hàm Arr::collapse gộp các mảng thành một mảng:

$array = Arr::collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

Arr::crossJoin()

Hàm Arr::crossJoin chéo các mảng được truyền vào, trả về một mảng Descartes với tất cả các hoán vị có thể:

$matrix = Arr::crossJoin([1, 2], ['a', 'b']);

/*
[
[1, 'a'],
[1, 'b'],
[2, 'a'],
[2, 'b'],
]
*/

Arr::divide()

Hàm Arr::divide trả về hai mảng, một mảng chứa các key, mảng còn lại chứa các values của mảng gốc:

[$keys, $values] = Arr::divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']

Arr::dot()

Hàm Arr::dot làm phẳng mảng đa chiều thành mảng một chiều sử dụng kí hiệu "dot" để đánh dấu độ sâu:

$array = ['products' => ['desk' => ['price' => 100]]];
$flattened = Arr::dot($array);
// ['products.desk.price' => 100]

Arr::except()

Hàm Arr::except loại bỏ các cặp key / value khỏi mảng:

$array = ['name' => 'Desk', 'price' => 100];
$filtered = Arr::except($array, ['price']);
// ['name' => 'Desk']

Arr::exists()

Hàm Arr::exists kiểm tra key có tồn tại trong mảng đã cho:

$array = ['name' => 'John Doe', 'age' => 17];
$exists = Arr::exists($array, 'name');
// true
$exists = Arr::exists($array, 'salary');
// false

Arr::first()

Hàm Arr::first trả về phần tử đầu tiên của mảng theo một điều kiện:

$array = [100, 200, 300];

$first = Arr::first($array, function ($value, $key) {
return $value >= 150;
});
// 200

Giá trị mặc định cũng có thể được truyền vào ở tham số thứ ba:

$first = Arr::first($array, $callback, $default);

Arr::last()

Hàm Arr::last trả về phần tử cuối cùng của mảng thỏa mãn điều kiện:

$array = [100, 200, 300, 110];

$last = Arr::last($array, function ($value, $key) {
return $value >= 150;
});
// 300

Giá trị mặc định cũng có thể được truyền vào ở tham số thứ ba:

$last = Arr::last($array, $callback, $default);

Arr::only()

Hàm Arr::only sẽ trả lại giá trị của các cặp key / value được chỉ định từ một mảng cho trước:

$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
$slice = Arr::only($array, ['name', 'price']);
// ['name' => 'Desk', 'price' => 100]

Arr::isAssoc()

Hàm Arr::isAssoc kiểm tra mảng có phải là một mảng kết hợp. Một mảng được coi là "kết hợp" nếu nó không có các phím số tuần tự bắt đầu bằng số không:

$isAssoc = Arr::isAssoc(['product' => ['name' => 'Desk', 'price' => 100]]);
// true

$isAssoc = Arr::isAssoc([1, 2, 3]);
// false

Arr::prepend()

Hàm Arr::prepend thêm một giá trị vào đầu mảng:

$array = ['one', 'two', 'three', 'four'];
$array = Arr::prepend($array, 'zero');
// ['zero', 'one', 'two', 'three', 'four']

Nếu cần, bạn có thể chỉ định key được sử dụng cho giá trị:

$array = ['price' => 100];
$array = Arr::prepend($array, 'Desk', 'name');
// ['name' => 'Desk', 'price' => 100]

Arr::pull()

Hàm Arr::pull trả lại và xoá một cặp key / value khỏi mảng:

$array = ['name' => 'Desk', 'price' => 100];
$name = Arr::pull($array, 'name');
// $name: Desk
// $array: ['price' => 100]

Bạn có thể thiết lập giá trị mặc định sẽ được trả lại nếu khoá không tồn tại:

$value = Arr::pull($array, $key, $default);

Arr::query()

Hàm Arr::query chuyển mảng thành chuỗi truy vấn:

$array = ['name' => 'Taylor', 'order' => ['column' => 'created_at', 'direction' => 'desc']];
Arr::query($array);
// name=Taylor&order[column]=created_at&order[direction]=desc

Arr::random()

Hàm Arr::random trả về một giá trị ngẫu nhiên từ một mảng:

$array = [1, 2, 3, 4, 5];
$random = Arr::random($array);

Bạn cũng có thể xác định số lượng các mục cần trả lại. Lưu ý rằng việc cung cấp đối số này sẽ trả về một mảng, ngay cả khi chỉ có một mục:

$items = Arr::random($array, 2);
// [2, 5] - (retrieved randomly)

Arr::set()

Hàm Arr::set thiết lập giá trị sâu trong mảng con sử dụng kí hiệu "dot":

$array = ['products' => ['desk' => ['price' => 100]]];
Arr::set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]

Arr::shuffle()

Hàm Arr::shuffle sắp xếp ngẫu nhiên các mục trong mảng:

$array = Arr::shuffle([1, 2, 3, 4, 5]);
// [3, 2, 5, 1, 4] - (generated randomly)

Arr::where()

Hàm Arr::where lọc mảng theo một Closure cho trước:

$array = [100, '200', 300, '400', 500];
$filtered = Arr::where($array, function ($value, $key) {
return is_string($value);
});
// [1 => '200', 3 => '400']

Arr::forget()

Hàm Arr::forget xóa một cặp key / value khỏi mảng lồng nhau sử dụng kí hiệu "dot":

$array = ['products' => ['desk' => ['price' => 100]]];
Arr::forget($array, 'products.desk');
// ['products' => []]