Tìm ký tự trong chuỗi PHP | Laptrinhcanban.com

Tìm ký tự trong chuỗi PHP

Hướng dẫn cách tìm ký tự trong chuỗi PHP. Bạn sẽ học được cách tìm vị trí ký tự trong chuỗi php bằng các hàm có sẵn trong PHP sau bài học này.

Tìm ký tự trong chuỗi PHP bằng hàm strpos

Chúng ta sử dụng hàm strpos trong PHP để tìm vị trí ký tự xuất hiện đầu tiên từ đầu chuỗi PHP với cú pháp sau đây:

strpos ($str, $character )`

Trong đó $character là ký tự cần tìm trong chuỗi $str.

Kết quả trả về sẽ là index của vị trí ký tự character xuất hiện đầu tiên tính từ đầu chuỗi $str. Và nếu như character không tồn tại trong str thì hàm strpos trong PHP sẽ trả về giá trị false.

Sau đây hãy cùng xem các ví dụ cụ thể sử dụng hàm strpos() để tìm ký tự trong chuỗi PHP như sau:

Ví dụ 1:

$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
echo $pos; //0

Trong ví dụ này, ký tự a xuất hiện ở đầu chuỗi, nên index của nó ( bằng 0) được trả về.

Ví dụ 2:

echo strpos("dictionary", "i");
//> 1

ở ví dụ này, có 2 ký tự i trong chuỗi ban đầu, tuy nhiên lần xuất hiện đầu tiên tính từ đầu chuỗi dictionary của nó là tại vị trí có index là 1, do đó hàm strpos trong PHP sẽ trả về kết quả là 1 mà thôi.

dictionary
----------
0123456789

Tìm ký tự trong chuỗi PHP từ vị trí bất kỳ bằng hàm strpos

Cúng bằng cách sử dụng hàm strpos() với cú pháp nâng cao, chúng ta có thể chỉ định vị trí bắt đầu tìm ký tự trong chuỗi PHP.

Cú pháp sử dụng sẽ là:

strpos ($str, $character, $start )`

Trong đó $character là ký tự cần tìm trong chuỗi $str, và $start là index của vị trí bắt đầu tìm kiếm trong chuỗi.

echo strpos("dictionary", "i", 2);
//> 4

Trong ví dụ này, vị trí tìm kiếm ký tự bắt đầu từ index bằng 2 (từ chữ c) nên kết quả, vị trí của ký tự i thứ 2 đã được trả về.

Tìm vị trí xuất hiện thứ n của ký tự trong chuỗi PHP

Trong PHP không tồn tại phương pháp trực tiếp nào để giúp chúng ta tìm vị trí xuất hiện thứ n của ký tự trong chuỗi PHP. Do đó chúng ta cần phải tự viết phương pháp riêng để giải quyết bài toán này.

Ý tưởng ở đây là dùng vòng lặp để tìm kiếm lần lượt các vị trí của ký tự trong chuỗi ban đầu, cho đến khi tìm thấy ký tự trong lần xuất hiện thứ n trong chuỗi.

Chúng ta có thể tạo một hàm như thể để sử dụng trong chương trình như sau:

function findString($char, $str, $n) {
$count=0;
for ($i = 0; $i < mb_strlen($str); ++$i) {
//Kiểm tra và so sánh lần lượt
if ($str[$i] ==$char){
$count += 1;
if ($count == $n){
$count = $i;
break;
}
}
}
echo $count;
return $count;
}

Trong đó các tham số sử dụng trong hàm là

  • str: chuỗi ban đầu
  • char: ký tự cần tìm
  • n : vị trí xuất hiện thứ n của ký tự char trong chuỗi str ban đầu.

Ví dụ, chúng ta gọi hàm trên để tìm vị trí xuất hiện thứ n của ký tự o trong chuỗi Good School như sau:

findString('o','Good School',2);  //2

findString('o','Good School',3); //8

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn các cách tìm ký tự trong chuỗi PHP rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về PHP trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.