Truy cập 1 phần tử của mảng
tên_biến_mảng [$key]
– Chú ý về cách sử dụng $key ở dạng chuỗi
• Các cách viết $key=>$value trong khai báo mảng $a3 sau đều được chấp nhận.
$a3 = array(“san pham”=>“laptop”,
‘brand’=>Dell, CPU=>“core i7”,
ram=>“8Gb”, “xuất xứ”=>“USA”, 5=>“giá trị khác”);
Thao tác mảng (tiếp)
Thêm một phần tử vào mảng
tên_biến_mảng [$key] = giá_trị
– Nếu mảng chưa tồn tại thì mảng sẽ được tạo và 1 giá trị sẽ được thêm vào.
– Nếu $key không được chỉ định thì phần tử mới luôn được thêm vào cuối mảng
• $key mới có giá trị bằng $key có giá trị số nguyên lớn nhất hiện có trong mảng cộng thêm 1.
– Nếu $key được chỉ định
• Nếu $key chưa tồn tại thì 1 phần tử mới sẽ thêm vào. • Nếu $key đã tồn tại thì sẽ không có phần tử nào được thêm
(lúc này giá trị cũ sẽ bị ghi đè)
Thao tác mảng (tiếp)
Ví dụ:
$a[0] = “Xin”;
$a[] = “Chào”; // $a[1] = “Chào”
$a[] = “Bạn”; // $a[2] = “Bạn”
$b['ten'] = “Bình”; $b['khoa'] = “CNTT”;
Thao tác mảng (tiếp)
Ví dụ:
$a=array(5=>“xin”, “chào”, “bạn”);
/*tương đương với 3 câu lệnh sau
$a[5]=“xin”;
$a[]=“chào”;
$a[]=“bạn”;*/
$a=array('ten'=>“Bình”, 'khoa'=>“CNTT”);
/*Tương đương với 2 câu lệnh sau
$a['ten'] = “Bình”; $a['khoa'] = “CNTT”;*/
Thao tác mảng (tiếp)
Duyệt mảng
– Dùng các cấu trúc lặp:
•while (điều_kiện) { ... }
•do { ... } while (điều_kiện);
•for (khởi_tạo; kiểm_tra; hành_động) { ... }
•foreach ($biến_mảng as [$key=>]$value)
– Rất hữu dụng khi duyệt các mảng kết hợp. (vì với mảng kết hợp, cách truyền thống không áp dụng được)
– Kết hợp sử dụng các hàm:
•each($biến_mảng), list($key, $value) – Dùng con trỏ mảng
Thao tác mảng (tiếp)
Ví dụ foreach: in mảng a2 đã khai báo ở trên
foreach($a2 as $khoa=>$giaTri){ echo “$khoa là $giaTri <br/>”; } kết quả: product là laptop brand là Dell CPU là corei7 ram là 8Gb 5 là USA Thao tác mảng (tiếp) Dùng hàm each($biến_mảng)
– Hàm each trả về phần tử kế tiếp của mảng. – Cặp $key=>$value của phần tử trả về được lưu
trong mảng 4 phần tử có khóa là 0,1, key,value.
• 0, key: chứa $key • 1, value: chứa $value
– Ví dụ: in mảng a2 đã khai báo ở trên while($item = each($a2)){
echo “{$item[‘key’]} là {$item[‘value’]}”; }
Thao tác mảng (tiếp)
Dùng hàm list()
– Hàm list($k,$v) tách cặp giá trị key=>value của phần tử có “chỉ số” là $key ra hai biến $k và $v. – Ví dụ:
in mảng a2 đã khai báo ở trên
While (list($k,$v) = each($a2)){ echo “$k là $v <br/>”;
}
Thao tác mảng (tiếp)
Ví dụ each: tạo và in mảng 10 phần tử có giá trị ngẫu nhiên từ 0-100. giá trị ngẫu nhiên từ 0-100.
<?php
$arr = array(10);
for($i = 1; $i <= 10; $i++) $arr[$i] = rand(0,100); while ($item = each($arr))
echo “{$item['value']} <br>”;
?>
Thao tác mảng (tiếp)