PHP và Ruby là
Kiểu mảng dựng sẵn của PHP trong thực tế là một mảng kết hợp. Ngay cả khi sử dụng các chỉ mục số, PHP lưu trữ bên trong nó như là một mảng kết hợp. Đây là lý do tại sao một trong PHP có thể có các mảng được lập chỉ mục số không liên tiếp. Các khóa phải là các giá trị vô hướng (chuỗi, số dấu phẩy động hoặc số nguyên), trong khi các giá trị có thể là các loại tùy ý, bao gồm các mảng và đối tượng khác. Các mảng không đồng nhất; một mảng duy nhất có thể có các khóa thuộc các loại khác nhau. Các mảng kết hợp của PHP có thể được sử dụng để biểu diễn các cây, danh sách, ngăn xếp, hàng đợi và các cấu trúc dữ liệu phổ biến khác không được tích hợp vào PHP.
Trong PHP, một mảng kết hợp có thể được hình thành theo một trong hai cách:
$ danh bạ = mảng (); $ danh bạ ['Sally thông minh'] = '555-9999'; $ danh bạ ['John Doe'] = '555-1212'; $ danh bạ ['J. Hacker ngẫu nhiên '] =' 555-1337 '; // hoặc $ phonebook = mảng ('Sally Smart' => '555-9999', 'John Doe' => '555-1212', 'J. Hacker ngẫu nhiên' => '555-1337',); // hoặc $ danh bạ ['danh bạ'] ['Sally Smart'] ['number'] = '555-9999'; $ danh bạ ['danh bạ'] ['John Doe'] ['số'] = '555-1212'; $ danh bạ ['danh bạ'] ['J. Hacker ngẫu nhiên '] [' số '] =' 555-1337 ';
Bạn cũng có thể lặp qua một mảng kết hợp trong PHP như sau:
foreach ($ danh bạ dưới dạng $ name => $ number) echo "Số cho $ name: $ number \ n";
// Đối với ví dụ mảng cuối cùng, nó được sử dụng như foreach này ($ phonebook ['contact'] là $ name => $ num) echo "Tên: $ name"; tiếng vang "Số: $ num ['số']";
PHP có một bộ các hàm rộng lớn để hoạt động trên các mảng.
Trong Ruby, một mảng liên kết được gọi là Hash và được sử dụng như sau:
danh bạ = 'Sally thông minh' => '555-9999', 'John Doe' => '555-1212', 'J. Hacker ngẫu nhiên '=>' 553-1337 '
danh bạ ['John Doe']
sản xuất '555-1212'
Để lặp lại hàm băm, sử dụng một cái gì đó như sau:
danh bạ.each | key, value | đặt khóa + "=>" + value
Ngoài ra, mỗi khóa có thể được hiển thị riêng lẻ:
danh bạ.each_key | key | đặt chìa khóa
Mỗi giá trị cũng có thể được hiển thị:
danh bạ.each_value | value | đặt giá trị