Tách số trong chuỗi php

Làm việc với các chuỗi, số và biểu thức chính quy trong PHP tương đối dễ dàng với số lượng lớn các hàm mà ngôn ngữ này cung cấp

Tuy nhiên, đôi khi việc tìm ra cách phân chia theo một số tiêu chí nhất định có thể không rõ ràng ngay lập tức hoặc có thể rõ ràng bạn cần làm gì nhưng không biết cách thực hiện tốt nhất.

Ảnh của Agê Barros trên Bapt

Ví dụ: giả sử bạn có một chuỗi chứa cả số và chữ số. Đối với bài đăng này, giả sử rằng một chuỗi đã cho

  • bao gồm giờ và phút,
  • khi số phút là 60,
  • chuỗi sẽ tăng giá trị của số giờ lên một
  • giá trị của phút được đặt lại về không

Sau đó, một ví dụ, chuỗi có vấn đề, có thể có dạng T3H60M. Làm thế nào sau đó chúng ta có thể chia chuỗi thành các chuỗi và số nguyên và xây dựng lại nó đúng cách?

Tách chuỗi và số nguyên trong PHP

Trong trường hợp này, có ba điều tôi thấy hữu ích. Không theo thứ tự đặc biệt

  • một biểu thức chính quy
  • preg_split
  • mảng_bộ lọc
  • mảng_giá_trị

Và thứ tự các hoạt động sử dụng từng thứ ở trên diễn ra như thế này

  1. sử dụng biểu thức chính quy để tìm tất cả các chữ số trong chuỗi,
  2. xóa mọi thứ trừ các chữ số trong mảng
  3. nếu chữ số thứ hai là 60, thì đặt nó bằng 0
  4. tăng chỉ số đầu tiên của mảng lên một
  5. xây dựng lại chuỗi

Nếu các bước trên được chuyển đổi thành mã,

Xem mã trên Gist

Lưu ý rằng tôi chọn sử dụng array_filter để loại bỏ các giá trị trùng lặp và sử dụng array_values ​​để xóa mảng chỉ thành hai mục, mục đầu tiên là giờ, mục thứ hai là phút

Sau đó, tôi xác định giá trị của từng chỉ mục của mảng [và hãy nhớ rằng chúng là các chuỗi nên bạn sẽ phải nhập chúng dưới dạng số nguyên để tăng giá trị của chúng một cách thích hợp

Cuối cùng, tôi xây dựng chuỗi khi [và nếu] cần thiết

Chắc chắn, đây là một trường hợp nhỏ, nhưng giải pháp có thể được tổng quát hơn dựa trên nhu cầu của riêng bạn

❮ Tham chiếu chuỗi PHP

Ví dụ

Tách chuỗi "Xin chào" thành một mảng

print_r[str_split["Xin chào"]];
?>

Tự mình thử »

Định nghĩa và cách sử dụng

Hàm str_split[] tách một chuỗi thành một mảng

cú pháp

Giá trị tham số

Tham sốChuỗi mô tảBắt buộc. Chỉ định chuỗi thành splitlengthOptional. Chỉ định độ dài của mỗi phần tử mảng. Mặc định là 1

chi tiết kỹ thuật

Giá trị trả về. Nếu độ dài nhỏ hơn 1, hàm str_split[] sẽ trả về FALSE. Nếu độ dài lớn hơn độ dài của chuỗi, toàn bộ chuỗi sẽ được trả về dưới dạng phần tử duy nhất của mảng. Phiên bản PHP. 5+

Thêm ví dụ

Ví dụ

Sử dụng tham số chiều dài

print_r[str_split["Xin chào",3]];
?>

Tự mình thử »

❮ Tham chiếu chuỗi PHP

Actually, this version is better than the last I submitted.  The goal here is to be able to engage in *multiple* delimeter removal passes; for all but the last pass, set the third value to "1", and everything should go well.

    function quotesplit[ $splitter=',', $s, $restore_quotes=0 ]
    {
        //First step is to split it up into the bits that are surrounded by quotes
        //and the bits that aren't. Adding the delimiter to the ends simplifies
        //the logic further down

        $getstrings = explode['"', $splitter.$s.$splitter];

        //$instring toggles so we know if we are in a quoted string or not
        $delimlen = strlen[$splitter];
        $instring = 0;

        while [list[$arg, $val] = each[$getstrings]]
        {
            if [$instring==1]
            {
                if[ $restore_quotes ]
                {
                    //Add the whole string, untouched to the previous value in the array
                    $result[count[$result]-1] = $result[count[$result]-1].'"'.$val.'"';
                } else {
                    //Add the whole string, untouched to the array
                    $result[] = $val;
                }
                $instring = 0;
            }
            else
            {
                //Break up the string according to the delimiter character
                //Each string has extraneous delimiters around it [inc the ones we added
                //above], so they need to be stripped off
                $temparray = split[$splitter, substr[$val, $delimlen, strlen[$val]-$delimlen-$delimlen+1 ] ];

                while[list[$iarg, $ival] = each[$temparray]]
                {
                    $result[] = trim[$ival];
                }
                $instring = 1;
            }
        }

        return $result;
    }

Làm cách nào để tách một số khỏi một chuỗi trong PHP?

Chúng ta có thể sử dụng hàm preg_replace[] để trích xuất các số từ chuỗi.

Làm cách nào để tách một mảng trong PHP?

PHP. Tách một mảng thành nhiều phần . Đoạn cuối cùng có thể chứa các phần tử nhỏ hơn kích thước. Chỉ định mảng để chia. Nếu chúng ta đặtserve_keys là TRUE, thì hàm array_chunk sẽ bảo toàn các khóa mảng ban đầu. The array_chunk[] function is used to split an array into arrays with size elements. The last chunk may contain less than size elements. Specifies the array to split. If we set preserve_keys as TRUE, array_chunk function preserves the original array keys.

Làm cách nào để ngắt văn bản trong PHP?

Hàm nl2br[] chèn ngắt dòng HTML [

Làm cách nào tôi có thể nhận được 2 số đầu tiên trong PHP?

Lấy 2 chữ số đầu tiên của một số trong PHP .
Chuyển đổi số thành một chuỗi bằng cách sử dụng kiểu truyền rõ ràng, vd. chuỗi[$pincode]
Sử dụng hàm substr[] để truy cập 2 ký tự đầu tiên của chuỗi
Chuyển đổi kết quả trở lại một số để lấy 2 chữ số đầu tiên của số

Chủ Đề