1. Trang chủ
  2. » Công Nghệ Thông Tin

ARRAY KỸ THUẬT XỬ LÝ MẢNG TRONG PHP

17 304 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kỹ thuật xử lý mảng trong PHP
Tác giả Phạm V Khánh
Người hướng dẫn Phạm V Khánh
Trường học Zend Framework
Chuyên ngành Kỹ thuật xử lý mảng
Thể loại Giáo trình
Năm xuất bản 2010
Thành phố Việt Nam
Định dạng
Số trang 17
Dung lượng 377,56 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cũng như bao ngôn ngữ lập trình khác. PHP cũng tồn tại một loại dữ liệu được gọi là mảng. Cụ thể hơn Mảng là 1 biến danh sách. Nghĩa là, một biến vốn chứa nhiều phần tử được tạo bởi các số hoặc chuỗi. Nó cho phép chúng ta lưu trữ, sắp xếp thứ tự và truy cập nhiều giá trị với một tên. Và cần lưu ý rằng một phần tử mảng luôn bắt đầu với giá trị là 0.

Trang 1

www.zend.vn Zend Framework! Programming

Shopping application

K thu t x lý m ng

M ng (Array) là m t thành ph n r t quan tr ng b t k ngôn ng l p trình nào Thông

th ng khi l p trình web v i PHP thu n chúng ta r t ít khi đ ý đ n k thu t x lý m ng

đi u đó đã làm h n ch s linh ho t c a ng d ng

i v i các ng d ng đ c xây d ng trên n n Zend Framework, n u chúng ta không x

d ng t t m ng thì th t s s khó kh n đ chúng ta có th t i u mã c a ch ng trình và giúp cho ng d ng c a chúng ta ch y nhanh đ c

Chính vì v y trong bài này chúng ta s h c cách x lý m ng cho m i tình hu ng đ nâng cao kh n ng ng d ng m ng vào Zend Framework

Giáo trình: Zend Framework! Programming (v2.2)

Chuyên đ : Shopping application

Biên so n: Ph m V Khánh Email: vukhanh2212@gmail.com

i n tho i: 0908.893326 Website: www.zend.vn

C p nh t: 07-2010

Trang 2

w

w

.ze

n

d

.vn

M ng là gì?

Bi n là m t n i đ l u tr s ho c ch V n đ là, bi n ch có th l u tr m t giá tr duy

nh t Còn m ng là m t bi n đ c bi t, nó có th l u tr nhi u giá tr trong m t bi n duy

nh t

Ví d : Chúng ta ch có th l u tr m t tên c a nhân viên trong m t bi n Nh ng đ i v i

m ng chúng ta có th l u tr hàng ngàn tên nhân viên khác nhau

<?php $employee_1 = 'Nguy n V n A';

$employee = array();

$employee[] = 'Nguy n V n A';

$employee[] = 'Nguy n V n B';

?>

M ng có th l u tr t t c các giá tr bi n c a b n d i m t tên duy nh t Và b n có th truy c p giá tr b ng cách tham chi u đ n tên m ng M i ph n t m ng có ch s riêng (index) đ chúng ta có th truy c p chúng m t cách d dàng

Trong PHP có 3 lo i m ng: M ng s nguyên (Numeric array), Associative array, Multidimensional array

1 M ng s nguyên

M ng s nguyên là m ng có ch s (index or key) là d ng s Chúng ta th ng g i

m ng này là m ng liên t c Có 2 cách đ t o ra m t m ng s nguyên

Ví d 1:

$cars=array("Saab","Volvo","BMW","Toyota");

Ví d 2:

$cars[0]="Saab";

$cars[1]="Volvo";

$cars[2]="BMW";

$cars[3]="Toyota";

In m t ph n t trong m ng:

$cars[0]="Saab";

$cars[1]="Volvo";

$cars[2]="BMW";

$cars[3]="Toyota";

echo $cars[3] "<br>";

echo $cars[0] " and " $cars[1] " are Swedish cars.";

In t t c các ph n t trong m ng

$cars[0] = "Saab";

$cars[1] = "Volvo";

$cars[2] = "BMW";

$cars[3] = "Toyota";

for ($i = 0; $i <= count($cars); $i++) {

Trang 3

w

w

.ze

n

d

.vn

echo $cars[$i] "<br>";

}

2 M ng k t h p

M ng k t h p là m t m ng mà ch s (index or key) là m t giá tr , ch s có th là chu i

ho c s Khi l u tr d li u vào các ph n t m ng, các ph n t đó đ c đ t tên c th

M ng k t h p là m t s b ng xung c n thi t cho thành ph n m ng trong PHP vì có nhi u

v n đ m ng s nguyên không th gi i quy t đ c h t Chúng ta th ng g i là m ng không liên t c

Ví d 1:

$ages = array("Tuan"=>32, "Quang"=>30, "Long"=>34);

Ví d 2:

$ages["Tuan"] = 32;

$ages["Quang"] = 30;

$ages["Long"] = 34;

In m t ph n t trong m ng

$ages["Tuan"] = 32;

$ages["Quang"] = 30;

$ages["Long"] = 34;

echo $ages["Tuan"];

In t t c các ph n t trong m ng

$ages["Tuan"] = 32;

$ages["Quang"] = 30;

$ages["Long"] = 34;

foreach($ages as $key => $value){

echo "<br>" $key " : " $value;

}

3 M ng đa chi u

M ng đa chi u là m ng mà m i ph n t trong m ng chính có th là m t m ng và m i

ph n t trong m ng con c ng có th là m t m ng Chúng ta th ng g i là m ng l ng

Ví d :

$students["SV001"] = array('id'=>1, 'name'=>'Tu n', 'age'=> 18, 'points'=>array(10,5,8) );

$students["SV002"] = array('id'=>1, 'name'=>'Tu n', 'age'=> 18, 'points'=>array(10,5,8) );

$students["SV003"] = array('id'=>1, 'name'=>'Tu n', 'age'=> 18, 'points'=>array(10,5,8) );

Trang 4

w

w

.ze

n

d

.vn

In ph n t trong m ng:

<?php

$students["SV001"] = array('id'=>1, 'name'=>'Tu n', 'age'=> 18, 'points'=>array(10,5,8) );

$students["SV002"] = array('id'=>1, 'name'=>'Tu n', 'age'=> 18, 'points'=>array(10,5,8) );

$students["SV003"] = array('id'=>1, 'name'=>'Tu n', 'age'=> 18, 'points'=>array(10,5,8) );

echo $students["SV003"]['name'] '<br>';

echo $students["SV003"]['age'] '<br>';

?>

4 Xem c u trúc m ng

có th thao tác t t trên m t m ng b t k chúng ta ph i đ c đ c c u trúc m ng Trong

th c t đ đ c c u trúc m ng, đ i t ng, bi n toàn c c c a m t h th ng … các l p trình viên PHP th ng dùng kh i l nh sau:

echo '<pre>';

print_r($ten_mang);

echo '</pre>';

Ví d : n u chúng ta in ra m ng $students m c 3 chúng ta s đ c nh sau:

Array ( [SV001] => Array (

[id] => 1 [name] => Tu n [age] => 18 [points] => Array (

[0] => 10 [1] => 5 [2] => 8 )

) [SV002] => Array (

[id] => 1 [name] => Tu n [age] => 18 [points] => Array (

[0] => 10 [1] => 5 [2] => 8 )

)

Trang 5

w

w

.ze

n

d

.vn

[SV003] => Array (

[id] => 1 [name] => Tu n [age] => 18 [points] => Array (

[0] => 10 [1] => 5 [2] => 8 )

) )

5 Bài t p m ng

x lý t t m ng chúng ta c n ph i th c hi n nhi u bài t p v i m ng đa chi u đi u này giúp chúng ta nâng cao kh n ng x lý m ng

Bài t p 1: Xây d ng hàm đ a d li u trong b ng groups vào trong selectbox

<?php

$con = mysql_connect('localhost', 'root', '');

mysql_select_db('zf05', $con);

$sql = 'SELECT * FROM user_group';

$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) { $newArray[$row['id']] = $row['group_name'];

} echo formSelect('group', null, $newArray);

function formSelect($name, $value = null, $option = null, $attri = null) { $xhtml = '<select id="' $name '" name="' $name '">';

foreach ($option as $key => $val) { $xhtml = '<option value="' $key '">' $val '</option>';

} $xhtml = '</select>';

return $xhtml;

}

?>

Bài t p 2: Nh p 2 m ng thành m t m ng duy nh t theo c u trúc đ c yêu c u

<?php

$group[] = array('id' => 1, 'name' => 'Admin');

$group[] = array('id' => 2, 'name' => 'Manager');

$group[] = array('id' => 3, 'name' => 'Member');

$member[] = array('id' => 1, 'username' => 'Nguyen Van A', 'group_id' => 1);

$member[] = array('id' => 2, 'username' => 'Nguyen Van B', 'group_id' => 1);

$member[] = array('id' => 3, 'username' => 'Nguyen Van C', 'group_id' => 1);

$member[] = array('id' => 4, 'username' => 'Nguyen Van D', 'group_id' => 2);

$member[] = array('id' => 5, 'username' => 'Nguyen Van E', 'group_id' => 2);

$member[] = array('id' => 6, 'username' => 'Nguyen Van F', 'group_id' => 2);

$member[] = array('id' => 7, 'username' => 'Nguyen Van G', 'group_id' => 3);

$member[] = array('id' => 8, 'username' => 'Nguyen Van H', 'group_id' => 3);

$member[] = array('id' => 8, 'username' => 'Nguyen Van I', 'group_id' => 3);

$newArray = array();

Trang 6

w

w

.ze

n

d

.vn

foreach ($group as $key => $val) { $newArray[$val['name']] = array();

foreach ($member as $key1 => $info) {

if ($val['id'] == $info['group_id']) { $newArray[$val['name']][] = $info;

} } }

echo '<pre>';

print_r($newArray);

echo '</pre>';

?>

6 Các hàm x lý m ng h u ích

6.1 Hàm print_r()

print_r ( array &$array ): In m ng $array ra, ch y u dùng đ debug

$ages["Tuan"] = 32;

$ages["Quang"] = 30;

$ages["Long"] = 34;

echo '<pre>';

print_r($ages);

echo '</pre>';

6.2 Hàm count()

int count ( array &$array ): Tr v gí tr ki u s nguyên là s ph n t c a m ng $array

$ages["Tuan"] = 32;

$ages["Quang"] = 30;

$ages["Long"] = 34;

count($ages);

6.3 Hàm array_values():

array array_values ( array &$array ): Tr v m t m ng liên t c bao g m các ph n t có giá tr là giá tr l y t các ph n t c a m ng $array

Ví d :

<?php

$array = array("size" => "XL", "color" => "gold");

print_r(array_values($array));

?>

Hi n th :

Array ( [0] => XL [1] => gold )

Trang 7

w

w

.ze

n

d

.vn

6.4 Hàm array_keys():

array array_keys ( array &$array ): Tr v m t m ng liên t c bao g m các ph n t có giá

tr là khóa (key) l y t các ph n t c a m ng $array

Ví d :

$array = array(0 => 100, "color" => "red");

print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");

print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"), "size" => array("small", "medium", "large"));

print_r(array_keys($array));

Hi n th :

Array ( [0] => 0 [1] => color )

Array ( [0] => 0 [1] => 3 [2] => 4 )

Array ( [0] => color [1] => size )

6.5 Hàm array_pop():

mixed array_pop ( array &$array ): Lo i b ph n t cu i cùng c a m ng $array Hàm tr

v ph n t cu i cùng đã đ c lo i b

Ví d :

<?php

$stack = array("orange", "banana", "apple", "raspberry");

$fruit = array_pop($stack);

print_r($stack);

?>

Hi n th :

Array ( [0] => orange [1] => banana [2] => apple )

6.6 Hàm array_push():

Trang 8

w

w

.ze

n

d

.vn

int array_push ( array &$array , mixed $var [, mixed $ ] ): a thêm 1 ho c nhi u ph n

t vào cu i m ng $array Hàm tr v ki u s nguyên là s l ng ph n t c a m ng $array

m i

Ví d :

<?php

$stack = array("orange", "banana");

array_push($stack, "apple", "raspberry");

print_r($stack);

?>

Hi n th :

Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry )

6.7 Hàm array_shif():

mixed array_shift ( array &$array ): Lo i b ph n t đ u tiên c a m ng $array Hàm tr

v ph n t đ u tiên đã đ c lo i b

Ví d :

<?php

$stack = array("orange", "banana", "apple", "raspberry");

$fruit = array_shift($stack);

print_r($stack);

?>

Hi n th :

Array ( [0] => banana [1] => apple [2] => raspberry )

6.8 Hàm array_unshif():

int array_unshift ( array &$array , mixed $var [, mixed $ ] ): a thêm 1 ho c nhi u

ph n t vào v trí đ u m ng Hàm tr v ki u s nguyên là s l ng ph n t c a m ng

$array m i

Ví d :

<?php

$queue = array("orange", "banana");

array_unshift($queue, "apple", "raspberry");

print_r($queue);

?>

Hi n th :

Array

Trang 9

w

w

.ze

n

d

.vn

( [0] => apple [1] => raspberry [2] => orange [3] => banana )

6.9 Hàm list():

array list ( mixed $varname [, mixed $ ] ) = $arrValue: ây là m t c u trúc ngôn ng

đ c dùng đ gán giá tr cho m t danh sách các bi n Giá tr đ c l y tu n t t t p h p các ph n t tu n t c a m ng đ c gán $arrValue (t c là không l y các ph n t có khóa (key))

Ví d :

<?php

$info = array('coffee', 'brown', 'caffeine');

// Listing all the variables list($drink, $color, $power) = $info;

echo '<br>' "$drink is $color and $power makes it special.\n";

// Listing some of them list($drink, , $power) = $info;

echo '<br>' "$drink has $power.\n";

// Or let's skip to only the third one list( , , $power) = $info;

echo '<br>' "I need $power!\n";

// list() doesn't work with strings list($bar) = "abcde";

var_dump($bar); // NULL

?>

Hi n th

coffee is brown and caffeine makes it special

coffee has caffeine

I need caffeine!

NULL

Ví d :

$info = array('coffee', 'brown', 'caffeine');

list($a[0], $a[1], $a[2]) = $info;

echo '<pre>';

print_r($a);

echo '</pre>';

Hi n th

Array ( [2] => caffeine [1] => brown [0] => coffee )

6.10 Hàm array_flip():

Trang 10

w

w

.ze

n

d

.vn

array array_flip ( array $array ): Tr v m t m ng có khóa và giá tr đ c hoán đ i cho nhau so v i m ng $array (giá tr thành khóa và khóa thành giá tr )

Ví d :

$trans = array("a" => 1, "b" => 1, "c" => 2);

$trans = array_flip($trans);

echo '<pre>';

print_r($trans);

echo '</pre>';

Hi n th :

Array ( [1] => b [2] => c )

6.11 Hàm sort()

bool sort ( array &$array ): S p xép m ng $array theo giá tr t ng d n

Ví d :

$fruits = array("lemon", "orange", "banana", "apple");

sort($fruits);

echo '<pre>';

print_r($fruits);

echo '</pre>';

Hi n th

Array ( [0] => apple [1] => banana [2] => lemon [3] => orange )

6.12 Hàm array_reverse()

array array_reverse ( array $array ): o ng c v trí các ph n t c a m ng, ph n t cu i cùng tr thành ph n t đ u tiên, ph n t k cu i thành ph n t th nhì,

Ví d :

$fruits = array("lemon", "orange", "banana", "apple");

$result = array_reverse($fruits);

echo '<pre>';

print_r($result);

echo '</pre>';

Hi n th

Array ( [0] => apple [1] => banana [2] => orange

Trang 11

w

w

.ze

n

d

.vn

[3] => lemon )

6.13 Hàm array_merge()

array array_merge ( array $array1 [, array $array2 [, array $ ]] ): Nh p 2 hay nhi u

m ng thành 1 m ng duy nh t và tr v m ng m i

Ví d :

$fruits_1 = array("lemon", "orange");

$fruits_2 = array("banana", "apple");

$result = array_merge($fruits_1,$fruits_2);

echo '<pre>';

print_r($result);

echo '</pre>';

Hi n th :

Array ( [0] => lemon [1] => orange [2] => banana [3] => apple )

6.14 Hàm array_rand()

mixed array_rand ( array $input [, int $num_req = 1 ] ): L y ng u nhiên ra 1 ho c ho c nhi u ph n t m ng sau đó đ a vào m t m ng m i

Ví d :

$fruits = array("lemon", "orange", "banana", "apple");

$rand_keys = array_rand($fruits, 2);

echo '<pre>';

print_r($rand_keys);

echo '</pre>';

Hi n th :

Array ( [0] => 3 [1] => 2 )

6.15 array_search()

mixed array_search ( mixed $needle , array $array ): Tìm giá tr trong m ng $array Hàm

tr v khóa (key) c a ph n t tìm đ c

Ví d :

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;

$key = array_search('red', $array); // $key = 1;

Ngày đăng: 23/08/2014, 11:21

TỪ KHÓA LIÊN QUAN

w