Hướng dẫn dùng concatenate arrays trong PHP

  • Định nghĩa.
  • Cú pháp.
  • Giá trị trả về.
  • Ví dụ minh họa.
  • Hàm liên quan.

Định nghĩa.

Hàm array_merge() là một hàm có sẵn trong PHP, được sử dụng để nối hai hay nhiều mảng khác nhau thành một mảng.

Nếu mảng đầu vào có cùng key với mảng trước ở dạng chuỗi, thì value sau của key đó sẽ được ghi đè lại value của key trước cùng với key đó. Nếu mảng ban đầu có cùng key ở dạng số, thì value của key sau sẽ không ghi đè value của key trước mà sẽ được nối thêm.

Các khóa số trong mảng đầu vào sẽ được đánh lại số thành các số tăng dần bắt đầu từ số 0 trong mảng được hợp nhất.

Ngoài việc sử dụng array_merge chúng ta có thể dùng toán tử cộng (+), tuy nhiên kết quả đầu ra có chút khác biệt. Các bạn cần xem xét kĩ trước khi sử dụng.

Cú pháp.

Cú pháp hàm array_merge() trong php:

array_merge($array1, $array2,...);

Trong đó:

$array1 là mảng ban đầu (Bắt buộc tồn tại).
$array2 là mảng sẽ được nối với mảng ban đầu.

Giá trị trả về.

Hàm sẽ trả về một mảng kết quả.

Ví dụ minh họa.

Ví dụ 1: Sử dụng hàm array_merge() để nối hai mảng.

'red', 'size'=>16, 'font'=>"Arial"];
$array2 = ['padding'=>20, 'margin'=>15, 'width'=>100, 'height'=>100];

$result = array_merge($array1, $array2);

var_dump($result);

Kết quả trả về một mảng mới với các phần tử và giá trị là 2 mảng đã cho gộp lại:

array(7) {
  ["color"]=>
  string(3) "red"
  ["size"]=>
  int(16)
  ["font"]=>
  string(5) "Arial"
  ["padding"]=>
  int(20)
  ["margin"]=>
  int(15)
  ["width"]=>
  int(100)
  ["height"]=>
  int(100)
}

Ví dụ 2: Nối hai mảng có cùng key ở dạng chuỗi, sử dụng hàm array_merge()

'red', 'size'=>16, 'font'=>"Arial"];
$array2 = ['color'=>'blue', 'font'=>'Roboto', 'width'=>100, 'height'=>100];

$result = array_merge($array1, $array2);

var_dump($result);

Kết quả trả về được một mảng với các value trùng nhau sẽ có value được ghi đè lên value của key trước.

array(5) {
  ["color"]=>
  string(4) "blue"
  ["size"]=>
  int(16)
  ["font"]=>
  string(6) "Roboto"
  ["width"]=>
  int(100)
  ["height"]=>
  int(100)
}

Ví dụ 3: Nối hai mảng có cùng key ở dạng số:

 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');

$result = array_merge($array1, $array2);

var_dump($result);

Kết quả trả về được một mảng mới với các key số trùng nhau không bị ghi đè giá trị mà thứ tự key được sắp xếp lại theo thứ tư tăng dần bắt đầu từ 0.

array(6) {
  [0]=>
  string(6) "zero_a"
  [1]=>
  string(5) "two_a"
  [2]=>
  string(7) "three_a"
  [3]=>
  string(5) "one_b"
  [4]=>
  string(7) "three_b"
  [5]=>
  string(6) "four_b"
}

Qua các ví dụ trên đã cho các bạn hiểu được cách sử dụng hàm array_merge() trong PHP, để tìm hiểu thêm các hàm xử lý khác trong PHP các bạn hãy tham khảo các hàm liên quan khác dưới đây.

Hàm liên quan.

  • array_merge_recursive() Kết hợp một hoặc nhiều mảng với nhau, đệ quy.
  • array_replace() Thay thế các phần tử của một mảng bằng các phần tử khác.
  • array_combine() Tạo một mảng từ hai mảng khác.

Các bạn có thể tham khảo thêm các hàm khác trên trang php.net

Hi vọng với bài viết này của minh, các bạn đã hiểu rõ cách sử dụng hàm array_merge() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ để mọi người cùng nhau học tập nhé. Cảm ơn bạn đã ghé thăm codetutam.com

Như chúng ta đã biết Array là một kiểu dữ liệu rất quan trọng trong PHP, hầu hết ở những dự án chúng ta đều phải xử lý dữ liệu Array.Hôm nay mình sẽ ôn tập một chút kiến thức về Array

1. Mảng là gì?

  • 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. Ví dụ, nếu bạn muốn lưu 100 số, thì thay vì định nghĩa 100 biến, nó là dễ dàng để định nghĩa một mảng có độ dài là 100.

2. Làm thế nào để tạo 1 mảng?

  • Để tạo 1 mảng chúng ta sử dụng cú pháp array().

Cú pháp:

$array = array( values );

Ví dụ:

$directors = array( "1", "7", "17", "23" );

3. Có bao nhiêu loại mảng?

  • 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.

4. Sự khác nhau giữa array_pop() và array_push()?

  • array_pop() : Được sử dụng để loại bỏ phần tử cuối cùng của mảng truyền vào,trả về phần tử bị loại bỏ.

Ví dụ:

$array = array(
   "css",
   "html",
   "php",
   "js"
);
$result = array_pop($array);
echo $result;
echo "
";
  print_r($array);
echo "
"
;

Output:

js
Array
(
    [0] => css
    [1] => html
    [2] => php
)
  • array_push() : Được sử dụng để chèn một hoặc nhiều phần tử vào cuối mảng

Ví dụ:

$a=array("apple","banana");
array_push($a,"mango","pineapple");

Output:

Array (
    [0] => apple
    [1] => banana
    [2] => mango
    [3] => pineapple
)

5. Sự khác nhau giữa array_merge() và array_combine()?

  • array_combine(): Được sử dụng để tạo ra mảng mới bằng cách sử dụng key của 1 mảng làm keys và value của mảng khác là values.Điều quan trọng nhất kh sử dụng array_combine() là số phần tử của cả 2 mảng phải bằng nhau.Trả về False nếu số phần tử của mỗi mảng là không cân bằng với nhau hoặc nếu các mảng là trống.

Ví dụ:

 
 $keys = ['sky', 'grass', 'orange'];
 $values = ['blue', 'green', 'orange'];

 $array = array_combine($keys, $values);
 print_r($array);
?> 

Output:

Array
(
    [sky] => blue
    [grass] => green
    [orange] => orange
)
  • array_merge(): Sử dụng để nối hai hay nhiều mảng lại thành một mảng. Nếu trong các mảng truyền vào có những phần tử có cùng khóa, phần tử của mảng cuối cùng được truyền vào sẽ được chọn để nối vào mảng kết quả.

Ví dụ:


    $array1 = array(
       "php" => "laravel",
       "css", "html"
   );
   $array2 = array(
       "python",
       "php" => "zend",
       "js" => "nodeJs"
   );
   $result = array_merge($array1, $array2);
   echo "
";
       print_r($result);
   echo "
"
; ?>

Output:

 Array
(
    [php] => zend
    [0] => css
    [1] => html
    [2] => python
    [js] => nodeJs
)

6. Làm thế nào để đếm tổng số phần tử trong mảng?

  • Chúng ta có thể sử dụng hàm count () hoặc sizeof () để đếm tổng số phần tử trong mảng

Ví dụ:

    $array1 = array("1","4","3");

    echo count($array1);

Output: 3

7. Sự khác nhau giữa count() và sizeof() là gì ?

  • Khi làm việc với mảng thì hàm count() có lẽ được dùng rất là thông dùng, nhưng bên cạnh đó có một hàm nữa có chức năng tương tự, đó là hàm sizeof(). Nhưng tại sao PHP lại có hai hàm mà chức năng lại giống nhau là đếm số phần tử của mảng? Điều này cho thấy có sự khác biệt ở đâu đó chăng? Thật ra thì không có sự khác biệt mấy, hàm sizeof() là một hàm mà ta có thể gọi là một alias của hàm count() nên chức năng hoàn toàn giống nhau.Hàm count() nhanh và tốt hơn hàm sizeof().

8. Làm thế nào để kiểm tra 1 khóa đã tồn tại trong mảng?

  • Để kiểm tra 1 khóa tồn tại trong mảng, chúng ta sử dụng array_key_exists()

Ví dụ:

   $item=array("name"=>"umesh","class"=>"mca");
   if (array_key_exists("name",$item))
   {
   echo "Key is exists";
   }
   else
   {
   echo "Key does not exist!";
}

Output: Key is exists

9. Sử dụng is_array() và in_array() như thế nào?

  • is_array () : Đây là một hàm sẵn có được sử dụng trong PHP. Nó được sử dụng để kiểm tra xem một biến có phải là một mảng hay không.

Ví dụ:


$yes = array('đây', 'là', 'mảng');

echo is_array($yes) ? 'Mảng' : 'Không phải mảng';
echo "\n";

$no = 'đây là chuổi';

echo is_array($no) ? 'Mảng' : 'Không phải mảng';
?>

Output:

Mảng

Không phải mảng
  • in_array () : Nó được sử dụng để kiểm tra xem một giá trị đã cho có tồn tại trong một mảng hay không. Nó trả về TRUE nếu giá trị tồn tại trong mảng và trả về FALSE nếu không.

Ví dụ:


$people = array("Peter", "Joe", "Glenn", "Cleveland");

if (in_array("Glenn", $people))
 {
 echo "Match found";
 }
else
 {
 echo "Match not found";
 }
?>

Output: Match found

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

  • sort () : Nó được sử dụng để sắp xếp một mảng theo thứ tự tăng dần
  • rsort () : Nó được sử dụng để sắp xếp một mảng theo thứ tự giảm dần
  • asort () : Nó được sử dụng để sắp xếp một mảng kết hợp theo thứ tự tăng dần, theo value
  • ksort () : Nó được sử dụng để sắp xếp một mảng kết hợp theo thứ tự tăng dần, theo key
  • arsort () : Nó được sử dụng để sắp xếp một mảng kết hợp theo thứ tự giảm dần, theo value
  • krsort () : Nó được sử dụng để sắp xếp một mảng kết hợp theo thứ tự giảm dần, theo key

11. Hàm implode() là gì?

  • Hàm implode() để nối các phân tử của mảng lại thành một chuỗi, hàm sẽ trả về chuỗi bao gồm các phần tử của mảng được ngăn cách bằng một kí tự nào đó được truyền vào.

Ví dụ:

$array = array('My','Name','Is','Quy');

echo implode(" ",$array)

Output: My Name Is Quy

12. Hàm explode() là gì?

  • Hàm explode() để chuyển một chuỗi thành một mảng và mỗi phần tử được cắt bởi một chuỗi con nào đó.

Cú pháp:

array explode ( string $delimiter , string $string [, int $limit ] )

Trong đó: $delimiter: Chuỗi phân cách.

$string: Chuỗi ký tự đầu vào.

$limit: Nếu tham số $limit được thiết lập và là số dương, hàm sẽ trả về một mảng với số lượng phần tử lớn nhất không vượt quá $limit và phân tử cuối cùng sẽ chứa phần còn lại của chuỗi $string. Nếu tham số $limit là một số âm, hàm sẽ trả về 1 mảng với số phần tử = (tổng số phần tử – $limit) Nếu tham số $limit bằng 0, thì được coi như là bằng 1.

Ví dụ:


$str = 'one|two|three|four';
 
// Tham số duương
print_r(explode('|', $str, 2));
 
// Tham số âm
print_r(explode('|', $str, -1));
?>

Output:

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

13. Cách sử dụng array_search() ?

  • array_search () là một hàm sẵn có của PHP, được sử dụng để tìm kiếm một giá trị cụ thể trong một mảng và nếu giá trị được tìm thấy thì nó trả về khóa tương ứng của nó.

Ví dụ:

$array = array("1"=>"My", "2"=>"Name", "3"=>"is", "4"=>"Quy"); 

echo array_search("Quy",$array);

Output: 4

14. Làm thế nào để có được các phần tử theo thứ tự ngược trong mảng ?

  • Chúng ta sử dụng hàm array_reverse().

Ví dụ:

$array  = array(
    "php",
    "js",
    "css",
    "html"
);
$reversed = array_reverse($array);
print_r($reversed);

Output:

Array
(
    [0] => html
    [1] => css
    [2] => js
    [3] => php
)

15. Làm thế nào để loại bỏ tất cả các phần tử trùng nhau trong mảng ?

  • Chúng ta sử dụng hàm array_unique() để loại bỏ tất cả các phần tử trùng nhau trong mảng.

Ví dụ:

$array = array(
    "a" => "php",
    "js",
    "b" => "python",
    "C#",
    "php"
);
$result = array_unique($array);
print_r($result);

Output:

Array
(
    [a] => php
    [0] => js
    [b] => python
    [1] => C#
)

16. Hàm array_count_values() là gì ?

  • Đây là một trong những hàm đơn giản nhất được sử dụng để đếm tất cả các giá trị bên trong một mảng. Nói cách khác, chúng ta có thể nói rằng nó được sử dụng để tính tần số của tất cả các phần tử của một mảng.

Ví dụ:

$array = array("B","Cat","Dog","B","Dog","Dog","Cat");

print_r(array_count_values($array)); 

Output:

Array(
    [B] => 2
    [Cat] => 2
    [Dog] => 3 
    )

17. Sự khác nhau giữa array_keys() và array_key_exists() ?

  • array_key_exists(): Nó được sử dụng để kiểm tra một mảng cho một khóa cụ thể và trả về TRUE nếu khóa tồn tại và FALSE nếu khóa không tồn tại.
  • array_keys(): Cú pháp:
 array_keys ( $input [, $search_value [, $strict]] );

Trong đó: $input: Bắt buộc. Xác định một mảng

$search_value: Bắt buộc. Bạn có thể xác định một value, thì chỉ có các key với value sẽ được trả về

$strict: Tùy ý. Được sử dụng với tham số value. Các giá trị có thể có là: true - Trả về các key với value đã xác định, phụ thuộc vào kiểu (số 5 là không giống với chuỗi "5"). false - Giá trị mặc định. Không phụ thuộc vào kiểu (số 5 là giống với chuỗi "5")

Trả về các key, dạng số hoặc chuỗi, từ mảng input. Nếu tham số tùy ý search_value được xác định, thì chỉ các key với value đó sẽ được trả về. Nếu không, tất cả key từ mảng input đó sẽ được trả về. Ví dụ:


 $a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog");
 print_r(array_keys($a));
 
 $a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog");
 print_r(array_keys($a,"Dog"));
 
 $a=array(10,20,30,"10");
 print_r(array_keys($a,"10",false));
?> 

Output:

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

Array(
    [0] => c
)

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

18. Cách sử dụng hàm array_splice() ?

  • Cú pháp :
array_splice( $input, $offset [,$length [,$replacement]] );

Trong đó: $input: Bắt buộc, xác định một mảng

$offset: Bắt buộc. Giá trị số. Xác định nơi hàm bắt đầu việc gỡ bỏ phần tử. 0 = phần tử đầu tiên. Nếu giá trị này là số âm, thì hàm sẽ bắt đầu từ phần tử cuối cùng (-2 nghĩa là bắt đầu từ phần tử cuối cùng thứ hai của mảng)

$length: Tùy ý. Giá trị số. Xác định bao nhiêu phần tử bị gỡ bỏ, và nó cũng là length của mảng trả về. Nếu giá trị này là số âm, nó sẽ dừng ở phần tử cuối cùng. Nếu giá trị này không được thiết lập, nó sẽ gỡ bỏ tất cả phần tử, bắt đầu từ vị trí được xác định bởi start-parameter

$replacement: Tùy ý. Xác định một mảng với các phần tử mà sẽ được chèn vào mảng nguồn. Nếu nó chỉ là một phần tử, nó có thể là một chuỗi, không phải là một mảng

Ví dụ:


   $input = array("red", "green", "blue", "yellow");
   array_splice($input, 2);
   print_r($input);
   print "
"
; $input = array("red", "green", "blue", "yellow"); array_splice($input, 1, -1); print_r($input); print "
"
; $input = array("red", "green", "blue", "yellow"); array_splice($input, 1, count($input), "orange"); print_r($input); print "
"
; $input = array("red", "green", "blue", "yellow"); array_splice($input, -1, 1, array("black", "maroon")); print_r($input); print "
"
; $input = array("red", "green", "blue", "yellow"); array_splice($input, 3, 0, "purple"); print_r($input); print "
"
; ?>

Output:

Array(
    [0] => red
    [1] => green
)

Array(
    [0] => red
    [1] => yellow
)

Array(
    [0] => red
    [1] => orange
)

Array(
    [0] => red
    [1] => green
    [2] => blue
    [3] => black
    [3] => maroon
)

Array(
    [0] => red
    [1] => green
    [2] => blue
    [3] => purple
    [3] => yellow
)

Tổng kết

Trên đây mình đã liệt kê những kiến thức ôn tập về array rất hữu ích ^^.Cảm ơn các bạn đã đọc bài của mình

Nguồn tham khảo

Doc PHP

PHP Array Interview Question