Thêm dữ liệu vào mảng php. Chèn và loại bỏ các phần tử mảng. Thêm và xóa các phần tử mảng

PHP Hỗ trợ các kiểu dữ liệu vô hướng và tổng hợp. Trong bài viết này chúng ta sẽ thảo luận về một trong những các loại tổng hợp: mảng. Mảng là tập hợp các giá trị dữ liệu được tổ chức dưới dạng tập hợp các cặp khóa-giá trị theo thứ tự.

Bài viết này nói về việc tạo mảng, thêm các phần tử vào mảng. Có nhiều hàm dựng sẵn hoạt động với mảng trong PHP bởi vì mảng là phổ biến và hữu ích để sử dụng. Ví dụ: nếu bạn muốn gửi email đến nhiều địa chỉ E-mail, bạn có thể lưu trữ địa chỉ email trong một mảng rồi lặp qua mảng đó, gửi tin nhắn đến địa chỉ email được lấy từ mảng đó.

Mảng được lập chỉ mục và kết hợp

Có hai loại mảng trong PHP: chỉ mục và kết hợp. Các khóa của mảng được lập chỉ mục là các số nguyên bắt đầu từ 0. Mảng được lập chỉ mục được sử dụng khi bạn yêu cầu một vị trí cụ thể trong mảng. Mảng kết hợp hoạt động giống như hai cột của bảng. Cột đầu tiên là khóa, được sử dụng để truy cập giá trị (cột thứ hai).

PHP lưu trữ nội bộ tất cả các mảng dưới dạng mảng kết hợp, do đó, sự khác biệt duy nhất giữa mảng kết hợp và mảng được lập chỉ mục là các khóa xuất hiện. Một số hàm được cung cấp chủ yếu để sử dụng với các mảng được lập chỉ mục, vì chúng giả định rằng khóa của bạn là số nguyên tuần tự bắt đầu từ 0. Trong cả hai trường hợp, các khóa là duy nhất - nghĩa là bạn không thể có hai phần tử có cùng khóa, bất kể khóa có hay không. là một chuỗi hoặc một số nguyên.

TRONG PHP mảng có trật tự nội bộ các phần tử của nó, độc lập với các khóa và giá trị, đồng thời có các hàm có thể được sử dụng để duyệt các mảng dựa trên thứ tự nội bộ này.

Định nghĩa các phần tử trong mảng

Bạn có thể truy cập các giá trị cụ thể từ một mảng bằng cách sử dụng tên mảng theo sau là khóa phần tử (đôi khi được gọi là chỉ mục) trong dấu ngoặc vuông:

$age["Fred"]; $ hiển thị;

Khóa có thể là một chuỗi hoặc một số nguyên. Giá trị chuỗiở dạng số (không có số 0 đứng đầu) được coi là số nguyên. Như vậy, $ mảng$mảng['3']đề cập đến cùng một yếu tố, nhưng $array[’03’]đề cập đến một yếu tố khác. số âm cũng có thể được sử dụng làm khóa, nhưng chúng không xác định vị trí từ cuối mảng, như trong Perl.

Không cần thiết phải viết khóa trong dấu ngoặc kép. Ví dụ, $array['Fred'] giống $arrat. Tuy nhiên, nó được coi phong cách tốt PHP luôn sử dụng dấu ngoặc kép. Nếu chỉ mục không có dấu ngoặc kép thì PHP sẽ sử dụng giá trị của hằng số làm chỉ mục:

Xác định("chỉ số",5); tiếng vang $ mảng; // sẽ trả về $array, không phải $array["index"];

Nếu bạn muốn thay thế một số vào chỉ mục, bạn cần làm điều này:

$age["Clone$number"]; // sẽ trả về, ví dụ $age["Clone5"];

Tuy nhiên, không trích dẫn key trong trường hợp tiếp theo:

// in sai "Xin chào, $person["name"]"; print "Xin chào, $person["name"]"; // in đúng "Xin chào, $person";

Lưu trữ dữ liệu trong mảng

Khi bạn cố lưu trữ một giá trị trong một mảng, mảng đó sẽ tự động được tạo nếu trước đó nó không tồn tại, nhưng khi bạn cố truy xuất một giá trị từ một mảng chưa được xác định, mảng đó sẽ không được tạo. Ví dụ:

// $addresses chưa được xác định cho đến bây giờ echo $addresses; // không có gì echo $addresses; // không có gì $addresses =" [email được bảo vệ]"; echo $addresses; // in "Mảng"

Bạn có thể sử dụng một phép gán đơn giản để khởi tạo một mảng trong chương trình:

địa chỉ $ = " [email được bảo vệ]"; địa chỉ $ = " [email được bảo vệ]"; địa chỉ $ = " [email được bảo vệ]"; // ...

Chúng tôi đã khai báo một mảng chỉ mục với các chỉ số nguyên bắt đầu từ 0.

Mảng kết hợp:

$giá["Miếng đệm"] = 15,29; $price["Bánh xe"] = 75,25; $giá["Lốp"] = 50,00; // ...

Một cách dễ dàng hơn để khởi tạo một mảng là sử dụng cấu trúc Mảng(), xây dựng một mảng từ các đối số của nó:

$địa chỉ = mảng(" [email được bảo vệ]", "[email được bảo vệ]", "[email được bảo vệ]");

Để tạo một mảng kết hợp bằng cách sử dụng Mảng(), sử dụng => ký hiệu tách các chỉ số khỏi các giá trị:

$price = array("Miếng đệm" => 15,29, "Bánh xe" => 75,25, "Lốp" => 50,00);

Hãy chú ý đến việc sử dụng không gian và căn chỉnh. Chúng ta có thể nhóm mã lại, nhưng nó sẽ kém rõ ràng hơn:

$price = array("Miếng đệm"=>15,29,"Bánh xe"=>75,25,"Lốp"=>50,00);

Để tạo một mảng trống, bạn cần gọi cấu trúc Mảng() không có đối số:

$addresses = Mảng();

Bạn có thể chỉ định khóa ban đầu trong một mảng và sau đó là danh sách các giá trị. Các giá trị được nhập vào mảng, bắt đầu bằng key rồi tăng dần:

$days = array(1 => "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy", "Chủ Nhật"); // 2 là thứ Ba, 3 là thứ Tư, v.v.

Nếu chỉ mục bắt đầu là một chuỗi thì các chỉ mục tiếp theo sẽ trở thành số nguyên, bắt đầu từ 0. Vì vậy, đoạn mã sau có thể có lỗi:

$whoops = array("Thứ Sáu" => "Đen", "Nâu", "Xanh"); // giống như $whoops = array("Thứ Sáu" => "Đen", 0 => "Nâu", 1 => "Xanh");

Thêm phần tử mới vào cuối mảng

Để chèn nhiều giá trị vào cuối một mảng được lập chỉ mục hiện có, hãy sử dụng cú pháp:

$family = mảng("Fred", "Wilma"); // $family = "Fred" $family = "Sỏi"; // $family = "Sỏi"

Cấu trúc này giả định rằng các chỉ mục mảng là số và gán cho phần tử chỉ mục số có sẵn tiếp theo, bắt đầu từ 0. Việc cố gắng thêm một phần tử vào một mảng kết hợp hầu như luôn là lỗi của người lập trình, nhưng PHP sẽ thêm các phần tử mới có chỉ số số (bắt đầu từ 0) mà không đưa ra cảnh báo:

$person = array("name" => "Fred"); // $person["name"] = "Fred"; $person = "Wilma"; // $person = "Wilma"

TRÊN ở giai đoạn này Chúng ta sẽ kết thúc phần giới thiệu về cách làm việc với mảng trong PHP. Tôi mong được gặp bạn trong bài viết tiếp theo.

Có nhiều hàm và toán tử để chuyển đổi mảng trong PHP: Tổng hợp các hàm làm việc với mảng

Có một số cách để thêm một mảng vào một mảng khi trợ giúp về php và tất cả chúng đều có thể hữu ích cho từng trường hợp riêng lẻ.

"Người điều hành +"

Đây là một cách đơn giản nhưng ngấm ngầm:

$c = $a + $b

Bằng cách này, chỉ những khóa chưa có trong mảng $a mới được thêm vào. Trong trường hợp này, các phần tử được thêm vào cuối mảng.

Nghĩa là, nếu khóa từ mảng $b không có trong mảng $a, thì một phần tử có khóa này sẽ được thêm vào mảng kết quả.
Nếu mảng $a đã chứa một phần tử có khóa như vậy thì giá trị của nó sẽ không thay đổi.

Nói cách khác, việc thay đổi vị trí của các số hạng sẽ làm thay đổi tổng: $a + $b != $b + $a - điều này đáng ghi nhớ.

Và bây giờ hơn thế nữa ví dụ chi tiếtđể minh họa điều này:

$arr1 = ["a" => 1, "b" => 2]; $arr2 = ["b" => 3, "c" => 4]; var_export($arr1 + $arr2); // mảng (// "a" => 1, // "b" => 2, // "c" => 4, //) var_export($arr2 + $arr1); // mảng (// "b" => 3, // "c" => 4, // "a" => 1, //)

hàm mảng_merge()

Bạn có thể sử dụng chức năng này như sau:

$kết quả = mảng_merge($arr1, $arr2)

Nó đặt lại các chỉ số số và thay thế các chỉ số chuỗi. Tuyệt vời để nối hai hoặc nhiều mảng với các chỉ mục số:

Nếu các mảng đầu vào có cùng khóa chuỗi thì mỗi giá trị tiếp theo sẽ thay thế giá trị trước đó. Tuy nhiên, nếu các mảng có khóa số giống nhau thì giá trị được đề cập cuối cùng sẽ không thay thế giá trị ban đầu mà sẽ được thêm vào cuối mảng.

hàm array_merge_recursive

Thực hiện tương tự như array_merge, ngoại trừ việc nó đệ quy đi qua từng nhánh của mảng và thực hiện tương tự với các mảng con của nó.

hàm array_replace()

Thay thế các phần tử mảng bằng các phần tử của mảng được truyền khác.

hàm array_replace_recursive()

Tương tự như array_replace nhưng xử lý tất cả các nhánh của mảng. Trợ giúp về array_replace_recursive.

Các tính năng khác

Có một số tùy chọn khác để làm việc với mảng trong PHP: chức năng hữu ích, sự tồn tại của nó là mong muốn được biết. Bạn có thể đọc về họ tại liên kết:

Trong chương này:

Mảng là một biến loại đặc biệt, nơi lưu trữ nhiều mục dữ liệu. Mảng cho phép bạn truy cập riêng biệt bất kỳ phần tử cấu thành nào của nó (vì chúng được lưu trữ riêng bên trong mảng) và bạn cũng có thể sao chép hoặc xử lý toàn bộ mảng.

Mảng PHP không được định kiểu, nghĩa là các phần tử của mảng có thể thuộc bất kỳ kiểu nào và các phần tử khác nhau trong mảng có thể có Nhiều loại khác nhau. Ngoài ra, mảng PHP là động, có nghĩa là không cần khai báo kích thước cố định và có thể thêm các phần tử mới bất kỳ lúc nào.

Khái niệm cơ bản về mảng

Để làm việc với mảng, bạn cần học hai khái niệm mới: phần tử và chỉ mục. Các phần tử là các giá trị được lưu trữ trong một mảng; các giá trị có thể thuộc bất kỳ loại nào. Mỗi phần tử có thể được truy cập bằng chỉ mục duy nhất của nó. Chỉ mục có thể là số nguyên hoặc chuỗi.

Mảng có thể được chia thành hai loại: chỉ mục, trong đó chỉ một số nguyên được sử dụng làm giá trị chỉ mục và kết hợp, trong đó giá trị chỉ mục có thể là một chuỗi hoặc một số. Thông thường trong mảng kết hợp, chỉ mục được gọi là: “key”.

Mảng chỉ mục thường được gọi đơn giản là "mảng" và mảng kết hợp được gọi là "băm", "kết hợp" hoặc "từ điển".

Tạo một mảng

Có ba cách để tạo mảng trong PHP. Cách đầu tiên là tạo bằng cách sử dụng chức năng đặc biệt mảng(). Hàm lấy làm đối số bất kỳ số cặp khóa => giá trị nào được phân tách bằng dấu phẩy hoặc chỉ các giá trị cũng được phân tách bằng dấu phẩy. Nó trả về một mảng có thể được gán cho một biến.

Vì bạn không phải chỉ định khóa nên các giá trị có thể được thêm vào mảng mà không cần chỉ định khóa. Nếu khóa không được chỉ định, PHP sẽ sử dụng các chỉ mục số. Theo mặc định, các phần tử sẽ được đánh số bắt đầu từ 0. Mảng có chỉ mục số cho phép bạn chỉ cần thêm một phần tử và PHP sẽ tự động sử dụng giá trị khóa số nguyên lớn nhất trước đó tăng thêm 1.

Bạn cũng có thể chỉ định khóa cho từng phần tử:

"đĩa CD"); var_dump($my_array); ?>

Khi chạy ví dụ này, bạn có thể nhận thấy rằng phần tử cuối cùng ("d") đã được gán cho khóa 8 . Điều này xảy ra vì giá trị lớn nhất của khóa thuộc loại số nguyên trước nó 7 .

Bây giờ chúng ta hãy xem việc tạo một mảng kết hợp bằng hàm array(). Mảng kết hợp được viết hơi khác một chút: để thêm một phần tử, định dạng khóa => giá trị được sử dụng.

"30", "Tháng 2" => "28/29 (29 xảy ra bốn năm một lần)", "Tháng 3" => "31", "Tháng 4" => "30", "Tháng 5" => "31", " Tháng Sáu" => "30", "Tháng 7" => "31", "Tháng 8" => "31", "Tháng 9" => "30", "Tháng 10" => "31", "Tháng 11" => " 30", "Tháng 12" => "31"); ?>

Với cách thụt lề mà bạn thấy trong ví dụ này, việc thêm các phần tử vào mảng sẽ dễ dàng hơn so với khi chúng được viết trên một dòng.

Bây giờ hãy xem cách thứ hai để tạo một mảng: sử dụng dấu ngoặc vuông, thay vì hàm array() đặc biệt:

"thanh", "thanh" => "foo"); // một cách khác để tạo mảng $my_array = ["foo" => "bar", "bar" => "foo"]; ?>

Không có sự khác biệt giữa các mảng này, ngoại trừ sự khác biệt về chính tả.

Xin lưu ý rằng trong PHP, mảng có thể chứa đồng thời các khóa kiểu int và chuỗi, tức là. PHP không phân biệt giữa mảng được lập chỉ mục và mảng kết hợp.

"sáng", "bánh xe" => "tròn", 10 => "nhà", -5 => 290]; ?>

Lưu ý: Khi chọn tên cho một mảng, hãy cẩn thận không sử dụng tên giống với một biến khác vì chúng có chung không gian chung tên Việc tạo một biến có cùng tên với mảng hiện có sẽ xóa mảng đó mà không hiển thị bất kỳ cảnh báo nào.

Cách thứ ba để tạo mảng sẽ được thảo luận trong phần “Thêm và xóa các phần tử mảng”.

Chuyển đổi chỉ mục

Như đã đề cập ở đầu chương, khóa có thể là một trong hai loại: chuỗi hoặc số nguyên. Do đó, các khóa không khớp với một trong các loại này sẽ được chuyển đổi:

  • Nếu khóa là một chuỗi chứa số, nó sẽ được chuyển thành kiểu số nguyên. Tuy nhiên, nếu số đó là số nguyên thập phân không hợp lệ, chẳng hạn như "09", thì số đó sẽ không được chuyển đổi thành số nguyên.
  • Số thực(float) cũng sẽ được chuyển đổi thành số nguyên - phân số trong trường hợp này nó bị loại bỏ. Ví dụ: nếu giá trị khóa là 5,4 thì nó sẽ được hiểu là 5.
  • Kiểu boolean (bool) cũng sẽ được chuyển đổi thành số nguyên. Ví dụ: nếu giá trị khóa là đúng thì nó sẽ được chuyển đổi thành 1 và khóa có giá trị sai sẽ được chuyển đổi thành 0 tương ứng.
  • Nếu loại null được sử dụng, nó sẽ được chuyển thành chuỗi trống.
  • Các đối tượng và mảng không thể được sử dụng làm khóa.

Nếu nhiều phần tử trong một khai báo mảng sử dụng cùng một khóa thì chỉ phần tử cuối cùng sẽ được sử dụng và tất cả các phần tử khác sẽ bị ghi đè.

"a", "1" => "b", // các phím được chuyển thành số 1 1.5 => "c", true => "d"); var_dump($my_array); ?>

Trong ví dụ đã cho, tất cả các khóa sẽ được chuyển đổi thành một, dựa trên điều này, mảng sẽ chỉ chứa một phần tử, nội dung của phần tử này sẽ bị ghi đè 3 lần, do đó giá trị của nó sẽ trở thành "d".

Truy cập các phần tử mảng

Các phần tử mảng được truy cập bằng dấu ngoặc vuông biểu thị chỉ mục/khóa: mảng.

"sữa", 2 => "foo"); echo $my_array["Sô-cô-la"], "
"; echo $my_array; ?>

Một cách khác để truy cập các phần tử mảng là sử dụng tham chiếu mảng trực tiếp.

Chào thế giới! ?>

Ví dụ này cho biết rằng bạn có thể truy cập vào chỉ mục của một mảng được trả về do kết quả của một lệnh gọi hàm hoặc phương thức.

Thêm và xóa các phần tử mảng

Bây giờ bạn đã có các khái niệm cơ bản về mảng, hãy xem cách ghi giá trị vào mảng. Một mảng hiện có có thể được sửa đổi bằng cách đặt rõ ràng các giá trị trong đó. Điều này được thực hiện bằng cách gán giá trị cho một mảng.

Thao tác gán giá trị cho một phần tử mảng cũng giống như thao tác gán giá trị cho biến, ngoại trừ dấu ngoặc vuông () được thêm vào sau tên biến mảng. Chỉ mục/khóa của phần tử được biểu thị trong dấu ngoặc vuông. Nếu không có chỉ mục/khóa nào được chỉ định, PHP sẽ tự động chọn chỉ mục số nhỏ nhất chưa được sử dụng.

"không", 1 => "một"); $my_arr = "hai"; $my_arr = "ba"; var_dump($my_arr); // gán mà không chỉ định chỉ mục/khóa $my_arr = "four"; $my_arr = "năm"; tiếng vang "
"; var_dump($my_arr); ?>

Để thay đổi một giá trị cụ thể, bạn chỉ cần gán giá trị mới cho phần tử hiện có. Để xóa bất kỳ phần tử nào của mảng bằng chỉ mục/khóa của nó hoặc để xóa hoàn toàn chính mảng đó, hãy sử dụng hàm unset():

Lưu ý: Như đã đề cập ở trên, nếu một phần tử được thêm vào mảng mà không chỉ định khóa, PHP sẽ tự động sử dụng giá trị khóa số nguyên lớn nhất trước đó tăng thêm 1. Nếu chưa có chỉ mục số nguyên nào trong mảng thì khóa sẽ là 0 (số không).

Lưu ý rằng giá trị nguyên lớn nhất của khóa không nhất thiết phải tồn tại trong mảng trong khoảnh khắc này , điều này có thể là do việc loại bỏ các phần tử mảng. Sau khi các phần tử đã bị xóa, mảng sẽ không được lập chỉ mục lại. Hãy lấy ví dụ sau để làm rõ hơn:

"; print_r($my_arr); // Thêm phần tử (lưu ý rằng khóa mới sẽ là 3 thay vì 0). $my_arr = 6; echo "
"; print_r($my_arr); // Thực hiện lập chỉ mục lại: $my_arr = array_values($my_arr); $my_arr = 7; echo "
"; print_r($my_arr); ?>

Ví dụ này sử dụng hai hàm mới, print_r() và array_values(). Hàm array_values() trả về một mảng đã được lập chỉ mục (lập chỉ mục lại mảng được trả về với các chỉ mục số) và hàm print_r hoạt động giống như var_dump, nhưng xuất ra các mảng ở dạng dễ đọc hơn.

Bây giờ chúng ta có thể xem cách thứ ba để tạo mảng:

Ví dụ này cho thấy cách thứ ba để tạo một mảng. Nếu mảng $weekdays chưa được tạo thì nó sẽ được tạo. Tuy nhiên, kiểu tạo mảng này không được khuyến khích vì nếu biến $weekdays đã được tạo và chứa một giá trị, nó có thể dẫn đến kết quả bất ngờ công việc kịch bản.

Nếu bạn nghi ngờ liệu một biến có phải là mảng hay không, hãy sử dụng hàm là_mảng. Ví dụ: việc kiểm tra có thể được thực hiện như sau:

"; $no = "chuỗi thông thường"; echo is_array($no) ? "Mảng" : "Không phải là mảng"; ?>

Lặp qua một mảng

Toán tử vòng lặp foreach lặp tuần tự qua tất cả các phần tử của một mảng. Nó chỉ hoạt động với mảng và đối tượng, và nếu được sử dụng với các biến thuộc loại khác hoặc biến chưa được khởi tạo, sẽ phát sinh lỗi. Có hai loại cú pháp cho vòng lặp này. Loại cú pháp đầu tiên trông như thế này:

Foreach ($array as $value) (hướng dẫn)

Vòng lặp sẽ lặp mảng đã cho- $array (tên mảng thay thế cho $array). Ở mỗi lần lặp, giá trị của phần tử hiện tại được gán cho biến $value (bạn có thể chỉ định bất kỳ tên biến nào khác). Toán tử vòng lặp foreach rất thuận tiện vì nó lặp qua và đọc tất cả các phần tử của mảng cho đến phần tử cuối cùng. Nó cho phép bạn tránh phải liên tục ghi nhớ thực tế là việc lập chỉ mục mảng bắt đầu từ 0 và không bao giờ vượt quá mảng, điều này làm cho việc xây dựng vòng lặp rất thuận tiện và giúp tránh các lỗi phổ biến. Hãy xem nó hoạt động như thế nào với một ví dụ:

Loại cú pháp foreach thứ hai trông như thế này:

Foreach ($array as $key => $value) (hướng dẫn)

Khi sử dụng dạng cú pháp này, tại mỗi lần lặp, giá trị của khóa hiện tại được gán thêm cho biến $key (bạn có thể chỉ định bất kỳ tên biến nào khác):

$value) ( ​​​​echo "[$key] => ", $value, "
"; } ?>

Để có thể thay đổi trực tiếp các phần tử mảng trong vòng lặp, bạn cần sử dụng tham chiếu. Trong trường hợp này, giá trị sẽ được gán theo tham chiếu.

Lưu ý: Tham chiếu đến phần tử cuối cùng của mảng vẫn giữ nguyên ngay cả sau khi câu lệnh foreach đã hoàn thành. Do đó, nên xóa nó bằng hàm unset() như trong ví dụ trên. Hãy xem điều gì sẽ xảy ra nếu chúng ta không sử dụng unset():"; foreach ($numbers as &$num) ( echo $num, " "; ) ?> Một điều cần lưu ý là tham chiếu chỉ có thể được sử dụng nếu mảng được lặp lại là một biến. Đoạn mã sau sẽ không hoạt động:

ngày: 2010-07-09

Trước hết, hãy tạo một mảng. Giả sử có một dãy các quân bài riêng lẻ cùng chất (bích = s). Hãy gọi cho anh ấy thẻ var.

Thẻ Var = ["8s","9s","Ts","Js","Qs"]; // 5 phần tử (các quân bài giống nhau từ 8 đến nữ hoàng)

Như bạn có thể thấy, có 5 phần tử trong mảng của chúng ta, mỗi phần tử có chỉ mục duy nhất riêng. Hãy để chúng tôi nhắc bạn một lần nữa rằng việc lập chỉ mục các phần tử mảng bắt đầu từ 0, đừng quên điều này, tức là. trong ví dụ của chúng tôi, phần tử đầu tiên của mảng ("8s") là 0, phần tử cuối cùng ("Qs") là 4.

Thêm một phần tử vào cuối mảng

Biết rằng trong mảng của chúng tôi thẻ var chỉ có 5 phần tử và chỉ mục cuối cùng kết thúc bằng 4, sau đó chúng ta có thể thêm phần tử mới thành một mảng như thế này:

Thẻ Var = ["8s","9s","Ts","Js","Qs"]; // 5 phần tử (các quân bài cùng chất từ ​​8 đến quân hậu) các quân bài = "Ks"; //thêm một phần tử mới vào cuối mảng, lúc này mảng có 6 phần tử

Khó khăn với cách tiếp cận này là nếu mảng chứa nhiều phần tử thì việc đếm chúng có thể rất bất tiện. Đối với những trường hợp như vậy, có một giải pháp đơn giản hơn - thuộc tính mảng chiều dài, xác định độ dài của mảng, tức là số phần tử trong mảng. Hãy xem một ví dụ:

Phóng! var cards = ["8s","9s","Ts","Js","Qs"]; // 5 phần tử (các quân bài cùng chất từ ​​8 đến quân hậu) các quân bài = "Ks"; /* thêm một phần tử mới vào mảng bằng thuộc tính chiều dài */ for(i = 0; i

Trong dòng 4 của mã, chúng tôi đã thêm một mục trong biểu mẫu thẻ;. Mã này giống hệt nhau thẻ;, vì tài sản chiều dài, như đã đề cập ở trên, xác định số lượng tất cả các phần tử trong mảng. Nói cách khác, chúng ta không cần đếm các phần tử, thay vào đó chúng ta viết chính mảng đó, đặt dấu chấm và áp dụng từ khóa chiều dài. Ở dòng 7 chúng ta cũng áp dụng tính chất chiều dài- đầu tiên chúng ta xác định điểm bắt đầu của bộ đếm từ 0, sau đó có một điều kiện là chúng ta viết, nếu giá trị của bộ đếm nhỏ hơn độ dài của mảng thì chúng ta tăng bộ đếm lên một và thực thi mã trong dấu ngoặc nhọn ( trong phần thân vòng lặp), nơi chúng tôi hiển thị các phần tử mảng bằng cách sử dụng cảnh báo(), bạn có thể sử dụng document.write(). Nói cách khác, mọi thứ trông như thế này:
0 nhỏ hơn 6? Vâng, ít hơn. Chúng ta tăng bộ đếm lên 1 và thực thi mã trong thân vòng lặp
1 nhỏ hơn 6? Vâng, ít hơn. Chúng ta tăng bộ đếm lên 1 và thực thi mã trong thân vòng lặp
2 nhỏ hơn 6? Vâng, ít hơn. Chúng ta tăng bộ đếm lên 1 và thực thi mã trong thân vòng lặp
.....................................................
6 có nhỏ hơn 6 không? KHÔNG. Chu kỳ dừng lại.

phương thức đẩy()

Ngoài các phương pháp nêu trên, còn có một phương pháp xô(), nhờ đó chúng ta có thể thêm bất kỳ loại dữ liệu nào và thậm chí cả một biến vào cuối mảng. Trong trường hợp này, có thể có nhiều phần tử cùng một lúc, được viết cách nhau bằng dấu phẩy trong dấu ngoặc đơn. Hãy xem một ví dụ:

Phóng! var cards = ["8s","9s","Ts","Js","Qs"]; // 5 phần tử (các quân bài cùng chất từ ​​8 đến quân hậu) cards.push("Ks","As"); /* thêm phần tử mới vào mảng bằng phương thức push() */ for(i = 0; i

Thêm phần tử vào đầu mảng

phương thức unshift()

Nếu bạn cần thêm các phần tử vào đầu mảng, hãy sử dụng phương thức chuyển dịch. Nó hoạt động theo nguyên tắc tương tự như phương thức push().

Phóng! var cards = ["8s","9s","Ts","Js","Qs"]; // 5 phần tử (các quân bài cùng chất từ ​​8 đến quân hậu) cards.unshift("5s","6s","7s"); /* thêm phần tử mới vào mảng bằng phương thức unshift() */ for(i = 0; i

mảng_pad

Thêm một số phần tử vào mảng.
Cú pháp:

Mảng array_pad(đầu vào mảng, int pad_size, pad_value hỗn hợp)

Hàm array_pad() trả về một bản sao của mảng đầu vào mà các phần tử có pad_values ​​đã được thêm vào, sao cho số phần tử trong mảng kết quả là pad_size.
Nếu pad_size>0 thì các phần tử sẽ được thêm vào cuối mảng và nếu<0 - то в начало.
Nếu giá trị của pad_size nhỏ hơn các phần tử trong mảng đầu vào ban đầu thì sẽ không có phép cộng nào xảy ra và hàm sẽ trả về mảng đầu vào ban đầu.
Ví dụ sử dụng hàm array_pad():

$arr = mảng(12, 10, 4);
$result = array_pad($arr, 5, 0);
// $result = mảng(12, 10, 4, 0, 0);
$result = array_pad($arr, -7, -1);
// $result = mảng(-1, -1, -1, -1, 12, 10, 4)
$result = array_pad($arr, 2, "noop");
// sẽ không thêm

mảng_map

Ứng dụng chức năng tùy chỉnh tới tất cả các phần tử của mảng được chỉ định.
Cú pháp:

Mảng array_map(gọi lại hỗn hợp, mảng Array1 [, mảng ...])

Hàm array_map() trả về một mảng chứa các phần tử của tất cả các mảng được chỉ định sau khi được hàm gọi lại của người dùng xử lý.
Số lượng tham số được truyền cho hàm do người dùng xác định phải khớp với số mảng được truyền cho array_map().

Ví dụ về cách sử dụng hàm array_map(): Xử lý một mảng đơn

trả lại $n*$n*$n;
}
$a = mảng(1, 2, 3, 4, 5);
$b = array_map("khối lập phương", $a);
print_r($b);
?>

Mảng(
=> 1
=> 8
=> 27
=> 64
=> 125
)

Ví dụ về cách sử dụng hàm array_map(): Xử lý nhiều mảng

return "Số $n trong tiếng Tây Ban Nha là $m";
}
hàm map_Spanish($n, $m) (
mảng trả về ($n => $m);
}

$a = mảng(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>

Ví dụ đã cho sẽ xuất ra kết quả như sau:

// bản in của $cArray(
=> Số 1 trong tiếng Tây Ban Nha - uno
=> Số 2 trong tiếng Tây Ban Nha - dos
=> Số 3 trong tiếng Tây Ban Nha - tres
=> Số 4 trong tiếng Tây Ban Nha - cuatro
=> Số 5 trong tiếng Tây Ban Nha - cinco
)

// bản in của $dArray(
=> Mảng
=> uno
)

=> Mảng
=> nên làm
)

=> Mảng
=> tres
)

=> Mảng
=> cuatro
)

=> Mảng
=> rạp chiếu phim
)

Thông thường, hàm array_map() được sử dụng trên các mảng có cùng kích thước. Nếu các mảng có độ dài khác nhau thì những mảng nhỏ hơn sẽ được đệm bằng các phần tử có giá trị trống.
Cần lưu ý rằng nếu bạn chỉ định null thay vì tên của hàm xử lý, một mảng các mảng sẽ được tạo.
Ví dụ về cách sử dụng hàm array_map(): Tạo một mảng các mảng

$b = array("một", "hai", "ba", "bốn", "năm");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?>

Ví dụ đã cho sẽ xuất ra kết quả như sau:

Mảng(
=> Mảng
=> 1
=> một
=> uno
)

=> Mảng
=> 2
=> hai
=> nên làm
)

=> Mảng
=> 3
=> ba
=> tres
)

=> Mảng
=> 4
=> bốn
=> cuatro
)

=> Mảng
=> 5
=> năm
=> rạp chiếu phim
)

Hàm được hỗ trợ bởi PHP 4 >= 4.0.6, PHP 5

mảng_pop

Truy xuất và loại bỏ các phần tử cuối cùng của mảng.
Cú pháp:

Mảng_pop hỗn hợp(mảng arr);

Hàm array_pop() lấy phần tử cuối cùng ra khỏi mảng arr và trả về nó, sau đó loại bỏ nó. Với chức năng này, chúng ta có thể xây dựng các cấu trúc giống như ngăn xếp. Nếu mảng arr trống hoặc không phải là mảng thì hàm sẽ trả về chuỗi rỗng NULL.

Sau khi sử dụng hàm array_pop(), con trỏ mảng được đặt về đầu.
Ví dụ sử dụng hàm array_pop():

$fruits = array_pop($stack);
print_r($stack);
print_r($trái cây);
?>

Ví dụ sẽ xuất ra như sau:

Mảng(
=> màu cam
=> chuối
=> táo
)

Chức năng được hỗ trợ bởi PHP 4, PHP 5

mảng_push

Thêm một hoặc nhiều phần tử vào cuối mảng.
Cú pháp:

Int array_push(mảng mảng, hỗn hợp var1 [, hỗn hợp var2, ..])

Hàm array_push() thêm các phần tử var1, var2, v.v. vào mảng arr. Nó gán cho chúng các chỉ số số - giống hệt như đối với các tệp .
Nếu bạn chỉ cần thêm một phần tử, việc sử dụng toán tử này có thể dễ dàng hơn:

Mảng_push($Arr,1000); // gọi hàm$Arr=100; // điều tương tự, nhưng ngắn hơn

Ví dụ sử dụng hàm array_push():

array_push($stack, "táo", "mâm xôi");
print_r($stack);
?>

Ví dụ sẽ xuất ra như sau:

Mảng(
=> màu cam
=> chuối
=> táo
=> quả mâm xôi
)

Xin lưu ý rằng hàm array_push() coi mảng là một ngăn xếp và luôn thêm các phần tử vào cuối.
Chức năng được hỗ trợ bởi PHP 4, PHP 5

mảng_shift

Lấy và loại bỏ phần tử đầu tiên của mảng.
Cú pháp:

Mảng_shift hỗn hợp(mảng arr)

Hàm array_shift() lấy phần tử đầu tiên của mảng arr và trả về nó. Nó rất giống với array_pop(),
nhưng nó chỉ nhận phần tử đầu tiên chứ không nhận phần tử cuối cùng, đồng thời còn tạo ra sự “rung chuyển” khá mạnh toàn bộ mảng: suy cho cùng, khi trích xuất phần tử đầu tiên, bạn phải điều chỉnh toàn bộ chỉ số số của tất cả các phần tử còn lại, bởi vì tất cả các phần tử tiếp theo của mảng được dịch chuyển về phía trước một vị trí. Các phím mảng chuỗi không thay đổi.
Nếu mảng trống hoặc không phải là mảng thì hàm trả về NULL.

Sau khi sử dụng hàm này, con trỏ mảng sẽ được di chuyển về đầu.
Ví dụ về sử dụng hàm array_shift():

$fruit = array_shift($stack);
print_r($stack);
?>

Ví dụ này sẽ xuất ra như sau:

Mảng(
=> chuối
=> táo
=> quả mâm xôi
)

và biến $fruit sẽ có giá trị "cam"

Chức năng được hỗ trợ bởi PHP 4, PHP 5

mảng_unshift

Thêm một hoặc nhiều giá trị vào đầu mảng.
Cú pháp:

Int array_unshift(list arr, var1 hỗn hợp [, var2 hỗn hợp, ...])

Hàm array_unshift() thêm các giá trị var đã truyền vào đầu mảng arr. Thứ tự của các phần tử mới trong mảng được giữ nguyên. Tất cả các chỉ số kỹ thuật số của mảng sẽ được thay đổi để nó bắt đầu từ số 0. Tất cả các chỉ mục chuỗi của mảng không thay đổi.
Hàm trả về số phần tử mới trong mảng.
Một ví dụ về cách sử dụng hàm array_unshift():

array_unshift($queue, "apple", "mâm xôi");
?>

Bây giờ biến $queue sẽ có các phần tử sau:

Mảng(
=> táo
=> quả mâm xôi
=> màu cam
=> chuối
)

Chức năng được hỗ trợ bởi PHP 4, PHP 5

mảng_unique

Loại bỏ các giá trị trùng lặp trong một mảng.
Cú pháp:

Mảng mảng_unique(mảng mảng)

Hàm array_unique() trả về một mảng bao gồm tất cả các giá trị duy nhất trong mảng arr cùng với các khóa của chúng, bằng cách loại bỏ tất cả các giá trị trùng lặp. Các cặp khóa=>giá trị đầu tiên gặp phải được đặt trong mảng kết quả. Các chỉ mục được bảo tồn.
Một ví dụ về cách sử dụng hàm array_unique():

"xanh", "đỏ", "b" =>
"xanh", "xanh", "đỏ");

print_r($kết quả);
?>

Ví dụ sẽ xuất ra như sau:

Mảng(
[a] => màu xanh lá cây
=> màu đỏ
=> màu xanh
)

Ví dụ về cách sử dụng hàm array_unique(): So sánh các kiểu dữ liệu

$result = array_unique($input);
var_dump($kết quả);
?>

Ví dụ sẽ xuất ra như sau:

Mảng(2) (
=> int(4)
=> chuỗi(1) "3"
}

Hàm được hỗ trợ bởi PHP 4 >= 4.0.1, PHP 5

mảng_chunk

Hàm chia mảng thành nhiều phần.
Cú pháp:

Mảng array_chunk(mảng arr, int size [, bool Serve_keys])

Hàm array_chunk() chia mảng mảng ban đầu thành nhiều mảng, độ dài của mảng được xác định bằng kích thước số. Nếu kích thước của mảng ban đầu không chia hết chính xác cho kích thước của các phần thì mảng cuối cùng sẽ có kích thước nhỏ hơn.
Hàm array_chunk() trả về mảng đa chiều, có chỉ số bắt đầu từ 0 đến số mảng kết quả và các giá trị là các mảng thu được do phân vùng.
Tham số prepare_keys tùy chọn chỉ định liệu các khóa của mảng ban đầu có được giữ nguyên hay không. Nếu tham số này sai (giá trị mặc định), thì chỉ số của mảng kết quả sẽ được chỉ định bằng các số bắt đầu từ 0. Nếu tham số đúng thì các khóa của mảng ban đầu sẽ được giữ nguyên.
Ví dụ về cách sử dụng hàm array_chunk():

$array = mảng("Phần tử thứ 1",
"yếu tố thứ 2"
"yếu tố thứ 3"
"yếu tố thứ 4"
"Yếu tố thứ 5");
print_r(array_chunk($array, 2));
print_r(array_chunk($array, 2, TRUE));

Ví dụ sẽ xuất ra như sau:

Mảng(
=> Mảng
=> phần tử thứ 1
=> phần tử thứ 2
)

=> Mảng
=> phần tử thứ 3
=> phần tử thứ 4
)

=> Mảng
=> phần tử thứ 5
)

)
Mảng(
=> Mảng
=> phần tử thứ 1
=> phần tử thứ 2
)

=> Mảng
=> phần tử thứ 3
=> phần tử thứ 4
)

=> Mảng
=> phần tử thứ 5
)

Chức năng được hỗ trợ bởi PHP 4 >= 4.2.0, PHP 5

mảng_điền

Hàm điền vào mảng giá trị nhất định.
Cú pháp:

Mảng array_fill(int start_index, int num, giá trị hỗn hợp)

Hàm array_fill() trả về một mảng chứa các giá trị được chỉ định trong tham số value có kích thước num, bắt đầu bằng phần tử được chỉ định trong tham số start_index.
Ví dụ sử dụng array_diff_uassoc():

print_r($a);
?>

Ví dụ sẽ xuất ra như sau:

Mảng(
=> chuối
=> chuối
=> chuối
=> chuối
=> chuối
=> chuối
)

Chức năng được hỗ trợ bởi PHP 4 >= 4.2.0, PHP 5

mảng_filter

Hàm áp dụng bộ lọc cho một mảng bằng hàm tùy chỉnh.
Cú pháp:

Mảng array_filter(đầu vào mảng [, gọi lại gọi lại])

Hàm array_filter() trả về một mảng chứa các giá trị có trong mảng đầu vào, được lọc theo kết quả làm việc của người dùng. chức năng gọi lại.
Trong trường hợp mảng đầu vào ban đầu là mảng kết hợp, các chỉ số được lưu trữ trong mảng kết quả.
Ví dụ về sử dụng hàm array_filter():

trả lại ($var % 2 == 1);
}

hàm chẵn($var) (
trả về ($var % 2 == 0);
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = mảng(6, 7, 8, 9, 10, 11, 12);
echo "Lẻ:n";
print_r(array_filter($array1, "odd"));
echo "Chẵn:n";
t_r(array_filter($array2, "even"));
?>

Ví dụ sẽ xuất ra như sau:

Lẻ:Mảng(
[a] => 1
[c] => 3
[e] => 5
Chẵn:Mảng(
=> 6
=> 8
=> 10
=> 12
)

Điều đáng chú ý là thay vì tên của hàm lọc, bạn có thể chỉ định một mảng chứa tham chiếu đến đối tượng và tên của phương thức.
Cũng cần lưu ý rằng khi xử lý một mảng bằng hàm array_filter() thì không thể thay đổi: thêm, bớt phần tử hoặc reset mảng, bởi vì điều này có thể dẫn đến hoạt động không chính xác của chức năng.
Hàm được hỗ trợ bởi PHP 4 >= 4.0.6, PHP 5