05/10/2018, 16:30

Mảng (Array) và Chuỗi (string)

Một mảng là một cấu trúc dữ liệu mà lưu giữ một hoặc nhiều kiểu giá trị giống nhau trong một giá trị đơn. Chuỗi là các dãy ký tự, giống như "Hoc PHP co ban va nang cao tai code24h.com".

Có 3 loại mảng khác nhau và mỗi giá trị mảng được truy cập bởi sử dụng một ID, mà được gọi là chỉ mục mảng.

  • Mảng số nguyên − Một mảng có chỉ mục ở dạng số. Giá trị được lưu trữ và truy cập tuyến tính.

  • Mảng liên hợp − Một mảng với chỉ mục ở dạng chuỗi kí tự. Mảng này lưu trữ các giá trị phần tử bằng sự kết hợp với các giá trị key thay vì trong một trật tự chỉ mục tuyến tính nghiêm ngặt như mảng số nguyên.

  • Mảng đa chiều − Một mảng chứa một hoặc nhiều mảng và các giá trị được truy cập bằng cách sử dụng nhiều chỉ mục.

  • Mảng số nguyên trong PHP

    Các mảng loại này có thể lưu trữ các số, các chuỗi và bất kỳ đối tượng nào, nhưng chỉ mục mảng thì vẫn được biểu diễn bởi các số. Theo mặc định, chỉ mục mảng bắt đầu từ 0.

    Ví dụ

    Mảng này có thể lưu trữ số, chuỗi và bất kì đối tượng nào, nhưng chỉ mục của chúng sẽ được biểu diễn ở dạng số. Theo mặc định chỉ mục mảng bắt đầu từ 0.

    Dưới đây là ví dụ minh họa cách tạo và truy cập mảng số nguyên trong PHP.

    Ở đây, chúng ta đã sử dụng hàm array() để tạo mảng. Hàm này được giải thích trong chương phụ: Hàm mảng trong PHP ở trên.

  •          $numbers_key = array( 1, 2, 3, 4, 5);
             
             foreach( $numbers_key as $value )
             {
                echo "Giá trị phần tử mảng là $value <br />";
             }
             
             /* Phương thức thứ hai để tạo mảng trong PHP. */
             $numbers[0] = "one";
             $numbers[1] = "two";
             $numbers[2] = "three";
             $numbers[3] = "four";
             $numbers[4] = "five";
             
             foreach( $numbers as $value )
             {
                echo "Giá trị phần tử mảng là $value <br />";
             }
             //Kết Quả là
            // Giá trị phần tử mảng là 1 
            // Giá trị phần tử mảng là 2 
            // Giá trị phần tử mảng là 3 
            // Giá trị phần tử mảng là 4 
            // Giá trị phần tử mảng là 5 
            // Giá trị phần tử mảng là one 
            // Giá trị phần tử mảng là two 
            // Giá trị phần tử mảng là three 
            // Giá trị phần tử mảng là four 
            // Giá trị phần tử mảng là five 
    

$array_combine:

Trộn 2 mảng $numbers_keys và $numbers_value thành một mảng kết hợp với $numbers là danh sách keys, $numbers_value là danh sách value tương ứng với key. Điều kiện là 2 mảng này phải bằng nhau.

Ví Dụ

        $numbers_key = array( 1, 2, 3, 4, 5);
        $numbers_value = array( "one","two","three","four","five");
        
        dd(array_combine($numbers_key,$numbers_value));
        //Kết Quả là array:5 [▼
        //   1 => "one"
        //   2 => "two"
        //   3 => "three"
        //   4 => "four"
        //   5 => "five"
        // ]

Mảng liên hợp trong PHP

Các mảng liên hợp là khá giống với các mảng số nguyên về tính năng, nhưng chúng khác nhau về chỉ mục. Mảng liên hợp sẽ có chỉ mục ở dạng chuỗi để mà bạn có thể thiết lập một liên kết mạnh giữa key và value.

Để lưu giữ lương của nhân viên trong một mảng, một mảng chỉ mục số sẽ không là lựa chọn tốt nhất. Thay vào đó, chúng ta sẽ sử dụng các tên nhân viên như là các key trong mảng liên hợp, và value sẽ là lương tương ứng của họ.

Ví Dụ

//Cách 1
$luong_nhan_vien = array[ 'bui' => high,'huu' => medium ,'tu' => low];

//cách 2
$luong_nhan_vien['bui'] = "high";
$luong_nhan_vien['huu'] = "medium";
$luong_nhan_vien['tu'] = "low";
echo "Mức lương của nhân viên hoang là ". $luong_nhan_vien['bui'] . "<br />";
echo "Mức lương của nhân viên manh là ".  $luong_nhan_vien['huu']. "<br />";
echo "Mức lương của nhân viên huong là ".  $luong_nhan_vien['tu']. "<br />";
//Kết quả là
// Mức lương của nhân viên hoang là high
// Mức lương của nhân viên manh là medium
// Mức lương của nhân viên huong là low

Mảng đa chiều trong PHP

Trong một mảng đa chiều, mỗi phần tử cũng có thể là một mảng. Và mỗi phần tử trong một mảng phụ có thể là một mảng, và cứ tiếp tục như vậy. Các giá trị trong mảng đa dạng được truy cập bởi sử dụng nhiều chỉ mục.

Ví Dụ: về điểm số

 $diemThi = array( 
            "bui" => array
            (
               "monVatLy" => 7,
               "monToan" => 8,  
               "monHoa" => 9
            ),
            
            "anh" => array
            (
               "monVatLy" => 7,
               "monToan" => 9,
               "monHoa" => 6
            ),
            
            "tu" => array
            (
               "monVatLy" => 8,
               "monToan" => 8,
               "monHoa" => 9
            )
         );
         
         /* truy cập các giá trị của mảng đa chiều */
         echo "Điểm thi môn Vật Lý của bùi là: " ;
         echo $diemThi['bui']['monVatLy'] . "<br />"; 
         
         echo "Điểm thi môn Toán của anh là: ";
         echo $diemThi['anh']['monToan'] . "<br />"; 
         
         echo "Điểm thi môn Hóa của tú là: " ;
         echo $diemThi['tu']['monHoa'];
        //Kết quả là
        //Điểm thi môn Vật Lý của bùi là: 7
        // Điểm thi môn Toán của anh là: 9
        // Điểm thi môn Hóa của tú là: 9

Cách hàm thường xuyên sử dụng trong mảng

1,array_count_values ( $array )

Đếm số lần xuất hiện của các phần tử giống nhau trong mảng $array và trả về một mảng kết quả.

$array = array(1, "hello", 1, "world", "hello");
dd(array_count_values($array));
//Kết quả là
//array:3 [▼
//   1 => 2
//   "hello" => 2
//   "world" => 1
// ]

 

 2,is_array($variable).

Kiểm tra một biến có phải kiểu mảng hay không, kết quả trả về true nếu phải và false nếu không phải.

$var = [
    'php',
    'js',
    'css'
];  
if (is_array($var)) {
    echo 'đây là một mảng dữ liệu';
}else{
    echo 'đây không phải là một mảng dữ liệu';
}

3,in_array($needle, $haystackarray)

Kiểm tra giá trị $haivan.vn có nằm trong mảng $array không. trả về true nếu có và flase nếu không có.

 

$array = array('hello', 'nobody', 'haivan.vn');
  
// Kết quả là true
var_dump(in_array('haivan.vn', $array));
  
// Kết quả là false
var_dump(in_array('vn', $array));

4,array_key_exists($key, $searcharray)

Kiểm tra key $key có tồn tại trong mảng $array không, trả về true nếu có và false nếu không có.

$array = array(
    'username' => 'buitu',
    'email' => 'buitu@gmail.com',
    'website' => 'buianhtu.com'
);
  
// Trả về true
var_dump(array_key_exists('username', $array));
  
// Trả về false
var_dump(array_key_exists('otherkey', $array));

5,array_unique( $array )

Loại bỏ giá trị trùng trong mảng $array.

$array = array('buianhtu.com', 'buianhtu.com');
$result = array_unique($array);
  
// Kết quả mảng chỉ còn 1 giá trị buianhtu.com
dd($result);

6,array_values ($array )

Chuyển mảng $array sang dạng mảng chỉ mục.

$array = array(
    'username' => 'admin',
    'password' => '123456'
);
  
var_dump(array_values($array));

Chuỗi (String)

Chuỗi là các dãy ký tự, giống như "Code ngày code đêm code thêm chủ nhật".

Ví dụ về chuỗi đúng cú pháp

$string_1 = "Vi du mot chuoi trong PHP";
$string_2 = "Code ngày code đêm code thêm chủ nhật";
$string_0 = ""; // ví dụ một chuỗi không có ký tự nào

Khi sử dụng chuỗi với dấu nháy đơn, nó sẽ được đối xử như là các hằng, và in ra chính chuỗi đó. Trong khi sử dụng với dấu nháy kép, nó thay thế các biến với giá trị của chúng cũng như thông dịch các dãy ký tự cụ thể.

Ví Dụ

   $bien_chuoi = "name";
   $bien_chuoi_hang = 'Chuỗi $bien_chuoi sẽ không được in!\\n';
   
   print($bien_chuoi_hang);
   print "<br />";
   
   $bien_chuoi_hang = "Chuỗi $bien_chuoi sẽ được in!\\n";
   
   print($bien_chuoi_hang);

Tìm độ dài chuỗi trong PHP - Hàm strlen() trong PHP

Hàm strlen() trong PHP được sử dụng để tìm độ dài của một chuỗi.

Ta sẽ tính độ đài của "Code ngày code đêm code thêm chủ nhật"

$string = "Code ngày code đêm code thêm chủ nhật";
echo strlen($string);
// độ đài là 45 ký tự

Tìm ký tự hoặc chuỗi trong chuỗi - Hàm strpos() trong PHP

Hàm strops() được sử dụng để tìm một chuỗi hoặc ký tự bên trong một chuỗi.

Nếu một so khớp được tìm thấy, hàm này sẽ trả về vị trí của so khớp đầu tiên. Nếu không tìm thấy một so khớp nào, nó sẽ trả về FALSE.

$string = "Code ngày code đêm code thêm chủ nhật";
echo strpos($string,"đêm");
// từ đêm ở thứ 16

 

Bài liên quan

Mảng (Array) và Chuỗi (string)

Một mảng là một cấu trúc dữ liệu mà lưu giữ một hoặc nhiều kiểu giá trị giống nhau trong một giá trị đơn. Chuỗi là các dãy ký tự, giống như "Hoc PHP co ban va nang cao tai code24h.com".

Bui Anh Tu viết 16:30 ngày 05/10/2018

Một số method hay trong Array và cách dùng (Phần 1)

Array trong ruby có rất nhiều method hay , cách sử dụng cũng rất đa dạng , đội khi cũng rất dễ nhầm lẫn. Hôm nay, mình xin được phép chia sẻ một vài method cùng với chức năng của chúng . 1- Count Đây là hàm dùng để đếm phần tử trong mảng, còn đếm như thế nào, đếm ra sao thì chúng ta cùng xem ...

Trịnh Tiến Mạnh viết 17:59 ngày 12/08/2018

Tìm kiếm, xóa, cập nhật giá trị trong mảng (Array) và bảng băm (Hash Table)

Array và Hash Table là hai trong số những kiểu dữ liệu được sử dụng khá thường xuyên trong lập trình. Trên thực tế thì cả hai kiểu dữ liệu này được sử dụng theo cách tương tự nhau và thường thực hiện các tác vụ phổ biến như thêm dữ liệu, tìm kiếm, sửa và xoá dữ liệu. Đối với các lập trình viên ít ...

Hoàng Hải Đăng viết 15:20 ngày 12/08/2018

Khái niệm cơ bản về array và block trong ruby

A whole lot of programming deals with lists of things Hầu hết các ngôn ngữ lập trình đều có cấu trúc dữ liệu dạng mảng các các đối tượng, các số, các từ, các sản phẩm... Ruby cũng không phải ngoại lệ, Matz người viết ra ngôn ngữ ruby biết điều đón nên ông ấy đã làm việc một cách chăm chỉ để đảm ...

Hoàng Hải Đăng viết 15:01 ngày 12/08/2018

sử dụng mảng (Array) trong Ruby on Rails như thế nào!?

Với một coder chắc hẳn ai cũng thường xuyên thao tác với array (hay gọi là mảng). Thao tác với mảng giúp chúng ta giải quyết rất nhanh một vấn đề nào đó mà yêu cầu bài toán đặt ra. Với array (mảng) thì hầu như tất cả các ngôn ngữ lập trình đều có, mình có thể lấy ví dụ định nghĩa array với ...

Hoàng Hải Đăng viết 13:06 ngày 12/08/2018
+2