Tìm hiểu về mảng (Array)

Tìm hiểu tập tin php.ini để cấu hình PHP

Trong phần các kiểu dữ liệu (Data Types), mình có nói sơ qua về mảng nhưng do tính chất quan trọng của mảng trong lập trình PHP nên mình xin nói kỹ hơn ở bài viết này.

Mảng (Array) là gì?

Mảng là một kiểu dữ liệu mà nó có thể chứa nhiều giá trị con bên trong. Hãy tưởng tượng như một mảng là một quyển sách, mỗi trang sách bên trong là giá trị (value) được đánh số bằng số trang (key).

Để tạo mảng, chúng ta sử dụng hàm array() trong PHP (Từ PHP 5.4 trở lên bạn chỉ cần viết giá trị trong cặp dấu [] cũng được). Ví dụ bên dưới là tạo một biến hứng mảng.


<?php
$mang = array( 'WordPress', 'CSS', 'PHP', 'Javascript' );

echo '<pre>';
var_dump( $mang );
echo '</pre>';
?>

Kết quả bạn có như sau:

array(4) {
  [0]=>
  string(9) "WordPress"
  [1]=>
  string(3) "CSS"
  [2]=>
  string(3) "PHP"
  [3]=>
  string(10) "Javascript"
}

Và bạn thấy, chúng ta có một mảng có 4 giá trị (array(4)). Trong đó nó có 4 key đánh số từ [0] đến [3] cho 4 giá trị tương ứng. Mỗi giá trị bên trong nó sẽ hiển thị kèm theo tên kiểu dữ liệu. Như vậy bạn có thể hiểu, WordPress, CSS, PHP, Javascript là giá trị trong mảng $mang mà ta dump ra. Các key nó sẽ tự động gán khi khởi tạo mảng.

Để lấy giá trị trong mảng như ý muốn của mình, chúng ta sẽ lấy ra bằng cách viết tên biến kèm theo key cần lấy giá trị như sau:


<?php
$mang = array( 'WordPress', 'CSS', 'PHP', 'Javascript' );

echo $mang[2]; // in PHP ra
?>

Mảng không tuần tự

Ở trên bạn đã làm quen với mảng cơ bản, và mặc định khi chúng ta khai báo giá trị vào mảng mà nó tự đánh số thứ tự cho các key bên trong thì ta gọi đó là mảng tuần tự. Nhưng trong nhiều trường hợp chúng ta có mảng quá bự, muốn tự đặt tên key cho dễ nhớ thì ta gọi đó là mảng không tuần tự.

Để khai báo tên key kèm giá trị, chúng ta chỉ việc viết giá trị là ‘tên_key' => 'giá_trị' vào mảng.


<?php
$web = array(
'wp'    =>    'WordPress',
'css'    => 'CSS',
'php'    => 'PHP',
25        => 100
);

echo '<pre>';
var_dump( $web );
echo '</pre>';
?>

Tên key có thể là dữ liệu kiểu chuỗi, kiểu số tự nhiên, số trôi nổi, dữ liệu mảng.

Mảng đa chiều

Mảng đa chiều chỉ đơn giản là một mảng chứa nhiều giá trị mảng lồng bên trong, tức là nó vẫn có key nhưng giá trị lại là một mảng mới. Ví dụ:


<?php
$web =
    array(
    'php'    =>
        array(
        'wp'    => 'WordPress',
        'joomla'    => 'Joomla',
        'drupal'    => 'Drupal',
        'mt'    =>    'Magento'
        ),
    'asp'    =>
        array(
        'netnuke'    =>    'DotNetNuke',
        'kentico'    =>    'Kentico CMS'
        )
    );

echo '<pre>';
    print_r($web);
echo '</pre>';
?>

Và để lấy giá trị của mảng đa chiều, bạn có thể sử dụng vòng lặp (chưa học tới) hoặc viết tên biến kèm theo tên key của mảng mẹ và tên key của mảng con như $web['php']['mt'].

Tips: Đối với mảng, bạn có thể dùng hàm print_r() để dump thay vì sử dụng hàm var_dump() nếu không cần xem loại kiểu dữ liệu của giá trị.

Các hàm làm việc với mảng trong PHP

Khi làm việc với mảng, bạn có thể sẽ cần sử dụng một số hàm có sẵn trong PHP để thao tác với mảng. Dưới đây là một số hàm thông dụng để làm việc với mảng.

Xem thêm: Danh sách các hàm làm việc với mảng

sizeof( $arr )

Hàm sizeof() được sử dụng để in ra tổng số phần tử có bên trong một mảng. Lưu ý là nó không thể đếm được toàn bộ phần tử trong mảng đa chiều.


<?php

    $name = array('John', 'David', 'Mickey', 'Jackson', 'Binladen');

    echo '<pre>';
    echo 'Có '. sizeof($name) . ' cái tên.';
    echo '</pre>';
?>

array_values( $arr )

Hàm array_values() sẽ rất có ích nếu như bạn muốn tạo ra một mảng mới và mảng mới này sẽ chứa toàn bộ giá trị của mảng được sử dụng trong hàm này.


<?php
    $hero = array(
        'name'    => 'Thạch',
        'age'    => '23',
        'race'    => 'Human',
        'Weapon'    => 'Rocket'
    );

    $thach = array_values( $hero );

    print_r( $thach );
?>

array_keys( $arr )

Nếu như hàm array_values() sẽ bóc toàn bộ giá trị trong mảng bỏ vào một mảng mới thì hàm array_keys() sẽ bóc toàn bộ key trong mảng bỏ vào một mảng mới.


<?php
$hero = array(
    'name'    => 'Thạch',
    'age'    => '23',
    'race'    => 'Human',
    'Weapon'    => 'Rocket'
);

$class = array_keys( $hero );

print_r( $class );
?>

each( $arr )

Đây là một hàm mà nó thường dùng kèm với vòng lặp (thường là vòng lặp while) để in ra một cặp key và giá trị của nó. Thực ra cái này cũng không thường được sử dụng cho lắm nhưng mà nó có thể giúp bạn sử dụng cùng lúc cả key và giá trị linh hoạt.


<?php
$hero = array(
    'name'    => 'Thạch',
    'age'    => '23',
    'race'    => 'Human',
    'Weapon'    => 'Rocket'
);

while( list($key, $value) = each( $hero )) {
    echo "$key - $value <br>";
}
?>

array_reverse( $arr )

Hàm này được sử dụng để đảo ngược thứ tự giá trị trong mảng.


<?php
    $number = array(25,44,23,15,53,75);

    echo '<pre>';
    print_r ( array_reverse( $number ) );
    echo '</pre>'
?>

array_merge( $arr1, $arr2,… )

Hàm này được sử dụng để gộp các dữ liệu của hai hoặc nhiều mảng lại với nhau.


<?php
    $number = array(10,20,30,40);
    $name = array("John","Thạch","Wun","Ciu");

    echo '<pre>';
    print_r( array_merge( $number, $name ) );
    echo '</pre>';
?>

join( $spec, $arr )

Hàm này có tác dụng sẽ lấy toàn bộ giá trị trong mảng và có thể cách nhau bằng một ký tự nhất định. Ví dụ dưới đây là lấy toàn bộ giá trị ra ngoài và cách nhau bởi dấu phẩy.


<?php
    $name = array("John","Thạch","Wun","Ciu");

    echo join( ',', $name );

?>

Ngoài ra hàm này còn có một cái tên khác nữa đó là implode().

Các hàm sắp xếp mảng

Nếu bạn cần thiết lập lại thứ tự các giá trị bên trong mảng thì có thể sử dụng các hàm sau đây:

  • sort() – Xếp mảng theo thứ tự tăng dần.
  • rsort() – Xếp mảng theo thứ tự giảm dần.
  • asort() – Xếp mảng theo thứ tự tăng dần, dựa vào giá trị.
  • ksort() – Xếp mảng theo thứ tự tăng dần, dựa vào key.
  • arsort() – Xếp mảng theo thứ tự giảm dần, dựa vào giá trị.
  • krsort() – Xếp mảng theo thứ tự giảm dần, dựa vào key.

Lời kết

Đấy, về khái niệm mảng trong PHP thì chỉ có bấy nhiêu thôi nhưng nó quan trọng là vì nó được sử dụng nhiều và rất linh hoạt trong nhiều trường hợp. Ví dụ khi bạn sử dụng nhiều hàm trong WordPress như get_terms() chẳng hạn, nó sẽ trả về giá trị kiểu mảng và lúc đó bạn sẽ làm việc với nó để lấy dữ liệu mà bạn cần. Về vấn đề này mình sẽ giải thích kỹ hơn ở bài các hàm thông dụng trong WordPress.

Bài tập thực hành

  • Tạo ra một mảng với biến tên là my_post.
  • Trong mảng đó sẽ có 5 key tên (giá trị tự đặt) theo yêu cầu Kiểu – tên key – giá trị như sau:
    1. String – title – Học PHP cơ bản
    2. String – content – Đây là nội dung của bài học PHP cơ bản
    3. Array – tag – php,php cơ bản
    4. Array – category – PHP, WordPress
    5. String – author – Thạch Phạm
  • Hiển thị giá trị của các key ra ngoài website (nên định dạng bằng HTML cho dễ đọc).

Bài giải


<?php
$my_posts = array(
    'title'    => 'Học PHP cơ bản',
    'content' => 'Nội dung học PHP cơ bản',
    'tag'    => array('php','php cơ bản'),
    'category'    => array('PHP', 'WordPress'),
    'author'    => 'Thạch Phạm'
);
?>

<div class="post">
<h1><?php echo $my_posts['title']; ?></h1>
<p><?php echo $my_posts['content']; ?></p>

<?php // Lấy giá trị trong tag và thêm dấu -
$tags = join('-', $my_posts['tag']);
?>
<p>Tags: <?php echo $tags; ?></p>

<?php // Lấy giá trị trong category và thêm dấu ,
$cats = join(',', $my_posts['category']);
?>
<p>Category: <?php echo $cats; ?></p>

<p>Tác giả: <?php echo $my_posts['author']; ?></p>
</div>

Nguồn: Tìm hiểu về mảng (Array) | Thạch Phạm

Categories: Content Marketing, Digital Marketing, Google Ads, Kinh doanh, PHP, SEO, Server - Hosting, WordPress, WordPress Development, Wordpress Plugin, WordPress Theme, Wordpress Tutorial,
Tags: baemin, bán hàng online, bán hàng online trên facebook, bán hàng qua facebook, bán hàng quần áo, bán hàng thời trang, bán hàng trên baemin, bán hàng trên facebook, bán hàng trên fanpage, bán hàng trên grab, bán hàng trên marketplace, bán hàng trên now, bán hàng trên tiktok, báo cáo kết quả hoạt động kinh doanh, bí quyết kinh doanh online, bít tết Âu việt, black friday, buôn bán hàng thùng, buôn bán hàng thùng tuyển chọn, cách bán hàng online đắt khách, cách bán hàng trên marketplace, cách bán hàng trên tiktok, câu chuyện kinh doanh, câu chuyện thành công, chương trình khuyến mãi, công nghệ phần mềm bán hàng, cửa hàng cafe, cửa hàng minh tuấn mobile, cửa hàng phụ kiện, cửa hàng thời trang, cửa hàng thực phẩm, cửa hàng thực phẩm sạch, doanh số bán hàng, dox garage & coffee, dox garage &amp; coffee, đăng ký bán hàng trên baemin, đăng ký bán hàng trên go food, đăng ký bán hàng trên grab, đăng ký bán hàng trên now, facebook, facebook pos, fanpage, file excel, file excel báo cáo kết quả kinh doanh, file excel quản lý kho, foodngon, go food, go jek, grab, halo mobile, khởi nghiệp, khởi nghiệp kinh doanh, khởi nghiệp kinh doanh thời trang, kinh doanh cafe, kinh doanh điện thoại, kinh doanh điện tử điện máy, kinh doanh đồ handmade, kinh doanh gì sau dịch, kinh doanh mỹ phẩm, kinh doanh mỹ phẩm online, kinh doanh nhà hàng, kinh doanh online, kinh doanh phụ kiện, kinh doanh quán cafe, kinh doanh shop thời trang, kinh doanh siêu thị mini, kinh doanh spa, kinh doanh thành công, kinh doanh thời trang, kinh doanh thời trang trẻ em, kinh doanh thực phẩm, kinh doanh thực phẩm sạch thành công, kinh doanh trên facebook, kinh doanh trên grab, kinh nghiệm bán hàng, kinh nghiệm kinh doanh, làm đồ handmade, lily shop, link kháng tài khoản quảng cáo, lụa tơ tằm bá minh, marketing online, mặt hàng dễ bán, mẹo bán hàng, mẹo bán hàng trên facebook, mẹo hay, ngày black friday năm 2020 là ngày nào?, now, now - foody, phầm mềm quản lý bán hàng miễn phí, phần mềm chốt đơn, phần mềm chốt đơn hàng, phần mềm miễn phí, phần mềm pos, phần mềm quản lý bán hàng, phần mềm quản lý bán hàng đáng tin cậy, phần mềm quản lý bán hàng miễn phí, phụ kiện ben & tony, phụ kiện ben &amp; tony, phụ kiện hà xinh, quán cafe hiệu quả, quản lý cửa hàng, quản lý cửa hàng thời trang, quản lý nhà hàng, quản lý nhân viên, quản lý nhân viên cứng đầu, quản lý nhân viên thời vụ, quảng cáo thương hiệu, shop thời trang, shopee, siêu thị minimart, status, status bán hàng, status quảng cáo mỹ phẩm, stella spa, stt bán hàng online hài hước, stt tương tác bán hàng, t.u.s shop, tài khoản bị vô hiệu hóa, tài khoản facebook, tài khoản facebook bị vô hiệu hóa, tải miễn phí file excel quản lý kho, tăng doanh thu mùa black friday, thời trang kosta, thời trang mine, thời trang tú trần shop, thực phẩm sạch, thực phẩm sạch 02, thực phẩm sạch tâm an, thuê mặt bằng kinh doanh, tiki, tiktok, tú trần shop,
6 Bước Rank Top 100+ Keywords Với 1 Bài Viết
Nâng cấp lên PHP 7 trên Shared Host dùng cPanel
Tác giả

Bình luận

JbnbFralf

pharmacy canada sildenafil citrate pharmacy without dr prescriptions

Lbsxtooff

no 1 canadian pharcharmy online cheap viagra drug price

NncsRoarm

online pharmacy viagra can you get viagra sent to australia buy viagra using paypal

KbcxMono

shoppers drug mart pharmacy prescription drugs online without canada prescription plus pharmacy

FvfcRoarm

viagra testosterone list of approved canadian pharmacies walmart pharmacy online

Ahkdtooff

canadian pharmacy certified canada pharmacy online cvs pharmacy online cialis professional

Fqhhtooff

prescription drug price comparison kamagra oral jelly online pharmacy india

Jbbvtooff

canadian pharmacy online online pharmacy without scripts pharmacy online shopping

Kuikurilk

buying viagra in ebay what\’s viagra generic viagra australia online

Labxtooff

what is cialis super active what side effects does cialis have adderall xr and cialis

JbnvFralf

ontario payday loan association cash advance covina how much would a 500 payday loan cost

KvaxMono

money tree payday loans winnipeg what is cash advance fee in hdfc credit card capital one venture card cash advance fees

Leave a Message

Registration isn't required.

NguyenLp LarTheme