peri hokiperihokiclarustologisticsrimashaop.compola taktis menang gates of olympus x1000 perihokipemain perihoki bongkar trik jepep starlight princess x1000perihoki beri panduan lengkap bermain mahjong ways 2 pgsofttips cara penghasil uang pgsoft mahjong ways 2 perihokimahjong wins 3 perihoki memberikan penggali terbesarfenomena gates of olympus buka peluang besar bagi duta76cara dapat pola emas rahasia di duta7 wild west goldtrik menang pgsoft mahjong ways 2 modal receh maxwin duta76duta76 main pgsoft mahjong ways 2 di sela istirahatscatter hitam mahjong wins 3 spin pasti jepe duta76perihoki spin mahjong ways 2 pgsoft scatter hitam maxwinsimbol mahjong wins 3 yang sering muncul di awal perihokitrik gampang menang mahjong winscuan mahjong wins 3 tanpa hentipola spin taruhan kecil mahjong winsstrategi kunci scatter hitam beruntungacor total mahjong wayskemenangan maksimal mahjong wayskemenangan pria pekanbaru mahjong waysmahjong wins3 fenomena baru sumatera baratmenangkan mahjong dengan lincahmenembus batas keberuntungan mahjong waysmenjajal keberuntungan di mahjong wayspola gratis mahjong ways1scatter hitam senjata rahasia mahjong winsteknik spinning menguntungkan untuk scatter hitamanalisis rtp tertinggi mahjong winsfenomena scatter hitam mahjong winsibu rumah tangga dan keberuntungan mahjongkeseruan main mahjong wins3menang mahjong pengguna baru di sosial mediamenghargai setiap momen di mahjong waysserunya main mahjong di warung internetspin slow motion mancing scatterstrategi jitu maxwin mahjong waysstrategi jitu menang mahjong modal kecil jackpot besaranak kampung papua menggemparkan mahjongkeajaiban scatter hitam mahjong wayskeberhasilan joni mahjong winskejaiban mahjong ways di ujung jalanketua mahjong wins3 kehadiran kemenangan dimulai dari balimahjong kehadiran yang menguntungkanmahjong menggila adat88panduan kilat raih 108 jutatips memenangkan mahjongbarista kopi menang 110 juta spin mahjongdakota76 scatter hitam mahjong wins 3gagal cpns menang mahjong wins 3 rp120 jutakisah karyawan minimarket dapat thr lebih awal mahjong winskisah pelajar sma kuasai mahjong wins 3 inspirasi sekolahkisah penjaga parkir tanah abang motor baru mahjong winskisah sukses ibu rumah tangga bandung mahjong winsmahasiswa kkn beli iphone15 mahjong wins3 dakotamantan anak band influencer mahjong scatter hitampola rtp senin gates of olympus guru matematikaidola scatter hitam gampang meledakidola sensasi jackpotidola pola scatter hitamidola hasilkan jackpot dalam waktu singkatidola mahjong wins 3 bocortukang cuci motor menemukan keberuntungan di mahjong

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 282

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_cookie_params(): Cannot change session cookie parameters when headers already sent

Filename: Session/Session.php

Line Number: 294

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 304

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 314

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 315

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 316

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 317

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 375

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: drivers/Session_files_driver.php

Line Number: 108

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_save_handler(): Cannot change save handler when headers already sent

Filename: Session/Session.php

Line Number: 110

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_start(): Cannot start session when headers already sent

Filename: Session/Session.php

Line Number: 143

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

Bài tập thực hành với mảng (array) trong PHP
LÝ THUYẾT
XỬ LÝ FORM
BÀI TẬP
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài tập thực hành với mảng (array) trong PHP

Mảng là một cấu trúc lưu trữ dữ liệu được sử dụng khá phổ biến ở hầu hết các ngôn ngữ lập trình, đây là một kiểu dữ liệu cho phép người dùng lưu trữ nhiều thông tin không giới hạn về số phần tử nên sử dụng nó sẽ giúp mã nguồn trông sáng hơn. Tuy nhiên nếu như sử dụng mảng nhiều quá sẽ dẫn đến tình trạng hao tốn tài nguyên vì sẽ mất thêm thời gian cho các thao tác duyệt mảng. Với PHP thì 100% thao tác xử lý danh sách đều sử dụng mảng kết hợp bởi nó rất rõ ràng, không gây nhầm lẫn như mảng đánh dấu chỉ mục. Ví dụ khi bạn lấy dữ liệu từ trong CSDL thì tên field chính là tên key của mảng nên rất trực quan. 

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nhằm giúp các bạn có thêm nhiều bài tâp thực hành thì trong bài này mình sẽ đưa ra một số bài tập về duyệt mảng nhé, hy vọng sẽ giúp các bạn sử dụng rành rỏi kiểu dữ liệu này.

1. Duyệt qua từng phần tử của mảng

Cho một mảng gồm các phần tử như sau:

 

Bài viết này được đăng tại [free tuts .net]

$authors = array(
    array(
        'name' => 'Nguyễn Văn Cường',
        'blog' => 'freetuts.net',
        'position' => 'admin'
    ),
    array(
        'name' => 'Trương Phúc Hoài Minh',
        'blog' => 'freetuts.net',
        'position' => 'author'
    ),
    array(
        'name' => 'Hoàng Văn Tuyền',
        'blog' => 'freetuts.net',
        'position' => 'author'
    ),
    array(
        'name' => 'Nguyễn Tình',
        'blog' => 'freetuts.net',
        'position' => 'author'
    )
);

 

Đây là một mảng chỉ mục trong đó mỗi phần tử lại chứa một mảng kết hợp. Bây giờ để duyệt qua từng phần tử thì chúng ta dùng vòng lặp để lặp qua mảng chỉ mục sau đó sử dụng tên key để truy xuất đến giá trị của các phần tử đó.

 

echo '<ul>';
foreach ($authors as $key => $author)
{
    echo '<li>';
    echo 'Name: ' . $author['name'] . '<br/>';
    echo 'Blog: ' . $author['blog'] . '<br/>';
    echo 'Position: ' . $author['position'] . '<br/>';
    echo '</li>';
}
echo '</ul>';

 

Kết quả:

lap mang trong php png

Nếu bạn thắc mắc không biết giá trị của $key$author trong vòng lặp foreach thì hãy sử dụng lệnh var_dump để xem nhé.

 

echo '<ul>';
foreach ($authors as $key => $author)
{
    echo '<li>';
    
        echo 'Phần tử thứ: ' . $key;
        echo '<pre>';
            var_dump($author);
        echo '</pre>';
    echo '</li>';
}
echo '</ul>';

 

Kết quả:

lap mang trong php 1 png

Như vậy $key chính là số chỉ mục và $author chính là giá trị của phần tử $key trong mảng $authors.

2. Truy xuất đến phần tử trong mảng

Nếu là mảng một chiều thì việc truy xuất rất đơn giản như sau:

 

// Lấy giá trị của phần tư thứ $key trong mảng $array
$value = $array[$key];

 

Tuy nhiên nếu truy xuất  mảng nhiều chiều thì chúng ta phải tuân theo quy tắc sau: duyệt từ cấp cao nhất cho đến cấp thấp nhất và muốn lấy phần tử nào thì bổ sung một cặp [$phan_tu] là được. Ví dụ với mảng $authors trên tôi muốn lấy tên của tác giả Hoài Minh thì ta làm như sau:

Mảng cao nhất là mảng ngoài cùng ($author), lúc này giá trị của Hoài Minh sẽ nằm trong phần tử thứ 2.

 

// Do key bắt đầu từ 0 nên phần tử thứ 2 sẽ có key =1 
$hoai_minh = $author[1];

 

Bây giờ muốn lấy tên thì chỉ việc trỏ đến key name.

 

// Do key bắt đầu từ 0 nên phần tử thứ 2 sẽ có key =1 
$hoai_minh = $author[1];

// Lấy tên
$name = $hoai_minh['name'];

 

Áp dụng quy tắc bổ sung cặp [$phan_tu] ta sẽ có cách ghi tắt như sau:

 

// Lấy tên
$name = $author[1]['name'];

echo $name; // Trương Phúc Hoài Minh

 

3. Thêm phần tử vào mảng

Thao tác thêm phần tử vào mảng trong PHP rất đơn giản, bạn chỉ việc sử dụng cú pháp như sau:

 

// Thêm vào cuối mảng (cách 1)
$array[] = 'value';

// Thêm vào cuối mảng (cách 2)
array_push($array, 'value');

// Thêm vào một vị trí nào đó
// trong đó $key có thể là con số (mảng chỉ mục) hoặc chuỗi (mảng kết hợp)
$array[$key] = 'value';

 

Ví dụ: Thêm một tác giả vào danh sách tác giả trên.

 

// Thông tin tá giả mới
$new_author = array(
    'name' => 'Đặng Văn Chương',
    'blog' => 'freetuts.net',
    'position' => 'author'
);

// Thêm vào danh sách
$authors[] = $new_author;

 

4. Xóa phần tử ra khỏi mảng

Trong PHP để xóa một biến ra khỏi bộ nhớ thì ta sử dụng hàm unset, như vậy ta cũng phải sử dụng hàm này để xóa một phần tử ra khỏi mảng.

 

// Xóa phần tử có key = 1 ra khỏi mảng $author
unset($authors[1]);

 

Xóa key name của tác giả Hoài Minh.

 

unset($authors[1]['name']);

 

5. Sửa giá trị các phần tử của mảng

Thao tác này có cú pháp như sau:

 

$author['key_can_sua'] = 'value';

 

Ví dụ: Sửa tên của tác giả Nguyễn Văn Cường thành Đinh Văn Cương

 

$authors[0]['name'] = 'Định Văn Cương';

 

6. Lời kết

Trên là 5 thao tác chính mà chúng ta hay sử dụng để thao tác với mảng, và ngoài các cách này thì bạn có thể sử dụng các hàm xử lý mảng trong PHP có sẵn để thay thế nhé. Bài này tương đối dễ và có thể một số bạn nói là không cần thiết, tuy nhiên mình vẫn đưa ra bài tập này với mục đích giúp những bạn mới tìm hiểu lập trình có thể hiểu rõ hơn về cách truy xuất các phần tử trong mảng. Chúc các bạn học tốt!

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top