PHP Code:
$arr[key] = value;$arr[] = value;$arr= array($key1 =>value1,$key2=>value2);$arr = array(value1, value2);
1.Mảng một chiều có chỉ mục: là mảng được quản lý bằng cách sử dụng chỉ số dưới kiểu integer để biểu thị vị trí của giá trị yêu cầu.Cú pháp: $name[index1];
Ví dụ: một mảng một chiều có thể được tạo ra như sau:
PHP Code:
$meat[0]="chicken";
$meat[1]="steak";
$meat[2]="turkey";
Bạn cũng có thể sử dụng hàm array( ) của PHP để tạo ra một mảng.Ví dụ:
PHP Code:
$meat=array("chicken","steak","turkey");
ví dụ bạn tạo mảng thế này
PHP Code:
$meat = array("chicken","steak","tukey");
PHP Code:
echo $meat[0];
PHP Code:
$arr[5] = 1;
PHP Code:
$arr[] = 3; // key là 6 nhá.
2.Mảng một chiều kết hợp: rất thuận lợi khi dùng để ánh xạ một mảng sử dụng các từ hơn là sử dụng các số ( integer), nó giúp ta giảm bớt thời gian và các mã yêu cầu để hiển thị một giá trị cụ thể.
Ví dụ: bạn muốn ghi lại tất cả các thức ăn và các cặp rượu ngon trong việc ăn nhậu của mình.
PHP Code:
$annhau["ruou"] = "Minh Mạng Tửu";
$annhau["khaivi"] = "Lạc rang";
$annhau["Trangmieng"] = "Chuối";
PHP Code:
$annhau = array( "ruou" => "Minh Mạng Tửu", "khaivi" => "Lạc Rang", "trangmieng" => "Chuối");
PHP Code:
echo $annhau["ruou"];
3.Mảng nhiều chiều có chỉ mục: chức năng của nó cũng giống như mảng một chiều có chỉ mục, ngoại trừ việc nó có thêm một mảng chỉ mục được dùng để chỉ định một phần tử. Cú pháp: $name[index1] [index2]..[indexN];
Một mảng hai chiều có chỉ mục được tạo ra như sau:
PHP Code:
$position = $chess_board[5][4];
PHP Code:
$pairings["Martinelli"] ["zinfandel"] = "Broiled Veal Chops";
$pairings["Beringer"] ["merlot"] = "Baked Ham";
$pairings["Jarvis"] ["sauvignon"] = "Prime Rib";
--------------
Để truy xuất hay nhập giá trị cho 1 phần tử mảng cụ thể , bạn có thể gọi trực tiếp chúng như sau:
PHP Code:
$arr = $mang[1];hoặc
$arr = $dothi["x"];
Tips : Để xóa 1 phần tử ra khỏi mảng , ta dùng unset()
Ví dụ
PHP Code:
$arr = array(1,2,3,4);
unset($arr[2]);// $arr bay giờ là array(1,2,4);
PHP Code:
$arr = array(1,2,3,4);$so = count($arr); // đố bạn bằng bao nhiu ?
Cách thứ nhất , dùng vòng lập for
Nếu biết trước số phần tử của mảng ta có thể dùng vòng lặp for để duyệt qua các phần tử mảng:
PHP Code:
<?php
$giatri = array(1,2,3,4,5,6,7,8,9,10);
for ($i = 0; $i < 10 ; $i ++)
echo $giatri[$i]."<br>";?>
Để nhập giá trị vào thì cũng thế nhá
Ví dụ
PHP Code:
<?php
for ($i = 0; $i < 10 ; $i ++)
echo $giatri[$i] = $i +1 ;?>
Cú pháp :
PHP Code:
foreach (array_expression as $value)
statementforeach (array_expression as $key => $value)
statement
PHP Code:
<?php
$giatri = array(1,2,3,4,5,6,7,8,9,10);
foreach ($giatri as $value)
echo $value."<br>";?>
PHP Code:
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}// $arr is now array(2, 4, 6, 8)?>
PHP Code:
<?php
$arr = array("mot"=>"one", "hai"=>"two","ba"=> "three");
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value<br />\n";
}?>
PHP Code:
<?php
$arr = array("one", "two","three");
while (list($key, $value) = each($arr)) {
echo "Key: $key; Value: $value<br />\n";
}?>
List sẽ gán giá trị cho biến được khai báo bên trong hàm list với giá trị là giá trị tương ứng của mảng.
Còn hàm each() sẽ trả về giá trị chỉ mục và giá trị của phần tử mảng hiện tại , đồng thời chuyển vị trí của chỉ mục lên 1 đơn vị , sẽ trả về False nếu vị trí của chỉ mục là vị trí cuối cùng trong mảng.Cặp giá trị trả về này sẽ nằm trong 1 mảng 4 phần tử là 0,1 , key, value . Phần tử 0 và key chứa tên chỉ mục của mảng, phần tử 1 và value tất nhiên sẽ chứa giá trị .
Có thể chỉ sử dụng while và each thôi cũng được
PHP Code:
<?php
$arr = array("one", "two","three");
while ($phantu = each($arr)) {
echo "Key: $phantu["key"]; Value: $phantu["value"]<br />\n";
}?>
PHP Code:
<?php
$sanpham = array( array("ITL","INTEL","HARD"),
array("MIR", "MICROSOFT","SOFT"),
array("PHP", "PHPVN.ORG","TUTORIAL")
);
for ($row = 0; $row < 3; $row++)
{
for ($col = 0; $col <3; $col++)
{
echo "|".$sanpham[$row][$col];
}
echo "<br>";
}?>
Do PHP lưu trữ các phần tử trong mảng theo thứ tự chúng được đưa vào mảng, chính vì vậy đôi lúc sẽ nảy sinh nhu cầu sắp xếp các phần từ trong mảng. Để sắp xếp ta có thể dùng các hàm có sẵn của PHP, tiêu biểu là hàm sort
PHP Code:
<?php
$arr = array(5, 3, 6, 4, 2, 1);
var_dump($arr);
echo "<br/>\n";
sort($arr);
var_dump($arr); ?>
Code:
array(6) {
* => int(5) [1]=> int(3) [2]=> int(6) [3]=> int(4) [4]=> int(2) [5]=> int(1) }
array(6) {
* => int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) }
Các bạn có thể thấy là các giá trị đã được sắp xếp tăng dần tuy nhiên các key cũng đã bị thay đổi. Để dữ nguyên các key ban đầu, ta sử dụng hàm asort. Thay thế hàm sort trong ví dụ bằng asort thì sẽ thu được kết quả như sau:
Code:
array(6) {
* => int(5) [1]=> int(3) [2]=> int(6) [3]=> int(4) [4]=> int(2) [5]=> int(1) }
array(6) { [5]=> int(1) [4]=> int(2) [1]=> int(3) [3]=> int(4)
* => int(5) [2]=> int(6) }
PHP Code:
"report1.pdf", "report10.pdf", "report15.pdf", "report5.pdf"
PHP Code:
"report1.pdf", "report5.pdf", "report10.pdf", "report15.pdf"
Giả sử bạn có mảng nhiều chiều sau:
PHP Code:
<?php
$bikes = array();
$bikes["Tourmeister"] = array("name" => "Grande Tour Meister",
"engine_cc" => 1100,
"price" =>12999);
$bikes["Slasher1000"] = array("name" => "Slasher XYZ 1000",
"engine_cc" => 998,
"price" => 11450);
$bikes["OffRoadster"] = array("name" => "Off-Roadster",
"engine_cc" => 550,
"price" => "4295"); ?>
PHP Code:
<?php
function compare_price($in_bike1, $in_bike2)
{
if ($in_bike1["price"] > $in_bike2["price"])
{
return 1;
}
else if ($in_bike1["price"] == $in_bike2["price"])
{
return 0;
}
else
{
return -1;
}
}
uasort($bikes, "compare_price");
foreach ($bikes as $bike)
{
echo "Bike {$bike['name']} costs \${$bike['price']}<br/>\n";
} ?>
Code:
Bike Off-Roadster costs $4295
Bike Slasher XYZ 1000 costs $11450
Bike Grande Tour Meister costs $12999
Trong các phần trên ta đều thấy sắp xếp tăng dần, vậy để sắp xếp giảm dần thì làm thế nào? Ta có thể sử dụng rsort và arsort thay thế cho sort và asort. Chú ý là không có ursort! Để sắp xếp ngược lại bạn chỉ cần đảo ngược thứ tự trong hàm so sánh của mình
Sắp xếp theo key
Để sắp xếp theo key, ta có các hàm ksort, krsort, và uksort. Sắp xếp theo key sẽ luôn giữ nguyên các key vì vậy không có kasort. Các giá trị đi kèm mỗi key cũng sẽ được giữ nguyên
Các hàm khác
array_merge
Hàm này sẽ nhận vào 2 mảng và trả lại 1 mảng trong đó bao gồm tất cả các giá trị của 2 mảng ban đầu. Các key sẽ được giữ nguyên trừ trường hợp:
2 mảng có 1 key là xâu kí tự giống nhau, thì giá trị của mảng thứ nhất sẽ bị ghi đè bằng giá trị của key đó ở mảng thứ hai
Ở mảng thứ hai nếu trùng các key là số nguyên với mảng thứ nhất, thì các giá trị của mảng thứ hai sẽ nhận 1 key mới (không ghi đè)
Xét ví dụ:
PHP Code:
<?php
$ar1 = array('name' => 'Zeke', 10, 100);
$ar2 = array('name' => 'Zimbu', 2, 3, 4);
$newar = array_merge($ar1, $ar2);
print_r($newar); ?>
Code:
Array (
[name] => Zimbu
* => 10
[1] => 100
[2] => 2
[3] => 3
[4] => 4
)
Hàm này nhận vào 2 mảng rồi trả lại 1 mảng, trong đó các key là các giá trị của mảng thứ nhất, các giá trị là từ mảng thứ hai. Nếu 2 mảng không có cùng số phần tử sẽ báo lỗi. Xét ví dụ sau:
PHP Code:
<?php
$ar1 = array('name', 'age', 'height');
$ar2 = array('Bob', 23, '5\'8"');
$newary = array_combine($ar1, $ar2);
print_r($newary); ?>
Code:
Array (
[name] => Bob
[age] => 23
[height] => 5'8"
)
Hàm này nhận vào 2 mảng rồi trả lại các phần tử cùng có ở 2 mảng. Các key sẽ được giữ nguyên, nếu cùng 1 giá trị mà lại có 2 key khác nhau thì key ở mảng thứ nhất sẽ được sử dụng. Xét ví dụ sau:
HTML Code:
<?php
$ar1 = array('name' => 'Zeke', 10, 100);
$ar2 = array('eeek' => 'Zeke', 2, 3, 4, 10);
$newar = array_intersect($ar1, $ar2);
print_r($newar);
?>
Code:
Array (
[name] => Zeke
* => 10
)
Khi bạn cần tìm 1 giá trị trong mảng thì sử dụng hàm này. Cấu trúc rất đơn giản:
PHP Code:
<?php
$ar1 = array(1, 10, 100, 23, 44, 562, 354);
var_dump(array_search(100, $ar1));
var_dump(array_search(3333, $ar1)); ?>
Code:
int(2)
bool(false)
Không có nhận xét nào: