mảng_chunk trong PHP – Stitcher.io

  • Post category:lập trình


PHP có rất nhiều hàm gốc chưa được khám phá đối với nhiều nhà phát triển. Thông thường, chúng ta không khám phá ra những chức năng này cho đến khi có nhu cầu thực sự về chúng. array_chunk chắc chắn là một trong những chức năng này đối với cá nhân tôi. Trong bài viết này, chúng ta sẽ khám phá những gì array_chunk là, nó làm gì và xem nó được sử dụng trong thực tế như thế nào.

# array_chunk và nó hoạt động như thế nào

array_chunk là một cái tên khá tiện lợi để cắt một mảng thành nhiều phần. Đây thực chất là chức năng của hàm, nó đọc một mảng và chia mảng thành các phần.

Hãy để tôi giải thích điều này theo thuật ngữ của nhà phát triển: chúng tôi có một mảng, (1, 2, 3, 4, 5, 6, 7, 8)chúng tôi sử dụng array_chunk trên mảng, chỉ định chúng tôi muốn các khối gồm 2 mục. Đầu ra sẽ trông tương tự như dưới đây.

$input = (1, 2, 3, 4, 5, 6, 7, 8);

array_chunk($input, 2);

(
    0 => (1, 2), 
    1 => (3, 4), 
    2 => (5, 6), 
    3 => (7, 8),
)

Khá tuyệt phải không? Với chức năng này, bạn có thể nhanh chóng biết cách sử dụng chức năng này cho mục đích thống kê, đặc biệt là với tính trung bình của phân khúc.

Hàm này chấp nhận 3 tham số như sau:

  • Các array
  • Kích thước của các khối được yêu cầu như một int
  • MỘT boolean để hướng dẫn các hàm giữ nguyên các khóa của mảng ban đầu hay không. Ghi chú: mặc định là false.

#Vấn đề thực tế

Hãy cùng tôi đi qua tình huống này: sếp của tôi muốn biết lợi nhuận trung bình từ cửa hàng của ông ấy trong mỗi tuần làm việc. Mỗi tuần làm việc có 5 ngày.

Vì vậy, giả sử để tranh luận, hãy nói rằng chúng tôi vừa truy vấn doanh số bán hàng tại cửa hàng trong 20 ngày qua từ cơ sở dữ liệu của cửa hàng. Dữ liệu được trả về sẽ điền vào mảng của chúng tôi 20 mục và do đó có 4 tuần làm việc.

Bây giờ, điều này khiến chúng ta gặp phải vấn đề hiện tại, chúng ta cần tính doanh số bán hàng trung bình cứ sau 5 ngày trong 4 tuần. Hãy theo dõi tôi qua phần tiếp theo này để đạt được kết quả.

# Phân đoạn trung bình với array_chunk

Chúng tôi biết mảng dữ liệu của chúng tôi có 20 mục nhập và chúng tôi biết rằng chúng tôi cần doanh số bán hàng trung bình mỗi tuần (5 mục nhập). Hãy tận dụng array_chunk với một chút PHP gốc để thực hiện các phép tính.

$sales = (
   250.70, 220.10, 233, 243.50, 255,
   200, 300, 234, 350, 222,
   237.99, 200.30, 150.98, 201, 209,
   200, 300, 240, 203, 280,
);



$salesPerWeek = array_chunk($sales, 5);


$averageSales = array_map(
   fn(array $items) => array_sum($items) / count($items),
   $salesPerWeek
);

Bây giờ, nếu chúng ta in nội dung của $averageSales chúng ta sẽ nhận được một cái gì đó như sau:

(
    240.46,
    261.2,
    199.854,
    244.6,
)

Hãy chia nhỏ mã để có được sự minh bạch hoàn toàn:

  • Đầu tiên, chúng ta có mảng gồm 20 mục nhập dữ liệu bán hàng mỗi ngày.
  • Tiếp theo, chúng tôi sử dụng array_chunk để chia nó thành nhóm năm người.
  • Sau đó chúng tôi sử dụng array_map trên mỗi đoạn và sử dụng array_sum để chia cho số lượng đoạn để cho chúng ta kết quả trung bình.

Và đó là nó!

Loại chức năng này có thể được sử dụng trong nhiều ứng dụng thống kê yêu cầu phân đoạn. Ví dụ trong bài viết này cố gắng chỉ cho bạn cách array_chunk hoạt động theo thuật ngữ thông thường với một chút trường hợp sử dụng giả vờ đằng sau nó. Tôi hy vọng điều này thật thú vị, nếu bạn muốn xem thêm bất kỳ nội dung nào của tôi, vui lòng xem blog của tôi, https://www.codewall.co.uk/



Trả lời