Hướng dẫn remove empty value in array php - loại bỏ giá trị trống trong mảng php

Với những điều này, tốt hơn nhiều là rõ ràng về những gì bạn muốn và không muốn.

Nó sẽ giúp anh chàng tiếp theo không bị bất ngờ vì hành vi của array_filter() mà không cần gọi lại. Ví dụ, tôi đã kết thúc câu hỏi này bởi vì tôi quên rằng array_filter() có loại bỏ NULL hay không. Tôi đã lãng phí thời gian khi tôi có thể chỉ sử dụng giải pháp dưới đây và có câu trả lời của tôi.

Ngoài ra, logic là ngôn ngữ Angnostic theo nghĩa là mã có thể được sao chép vào một ngôn ngữ khác mà không phải chịu hành vi của hàm PHP như array_filter khi không có cuộc gọi lại được truyền.

Trong giải pháp của tôi, rõ ràng trong liếc nhìn về những gì đang xảy ra. Loại bỏ một điều kiện để giữ một cái gì đó hoặc thêm một điều kiện mới để lọc các giá trị bổ sung.

Bỏ qua việc sử dụng thực tế của array_filter() vì tôi chỉ chuyển nó một cuộc gọi lại tùy chỉnh - bạn có thể tiếp tục và trích xuất nó ra chức năng của chính nó nếu bạn muốn. Tôi chỉ sử dụng nó làm đường cho vòng lặp

 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]
0.

";
var_export($xs);

Một lợi ích khác của phương pháp này là bạn có thể chia các vị từ lọc thành một hàm trừu tượng lọc một giá trị duy nhất trên mỗi mảng và xây dựng thành một giải pháp có thể kết hợp.

Xem ví dụ này và các nhận xét nội tuyến cho đầu ra.

 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]

Bây giờ bạn có thể tự động tạo một hàm gọi là

 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]
1 bằng cách sử dụng
 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]
2 sẽ áp dụng các chức năng được áp dụng một phần này cho bạn.

";
var_export($xs); //=> [0, 1, 2, 3]

Chủ đề: PHP / mysqlprev | Tiếp theoPrev|Next

Trả lời: Sử dụng chức năng PHP array_filter()

Bạn có thể chỉ cần sử dụng chức năng PHP array_filter() để xóa hoặc lọc các giá trị trống khỏi một mảng. Hàm này thường lọc các giá trị của một mảng bằng hàm gọi lại.

Tuy nhiên, nếu không có chức năng gọi lại được chỉ định, tất cả các mục trống của mảng sẽ bị xóa, chẳng hạn như

 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]
5 (một chuỗi trống),
 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]
6 (0 dưới dạng số nguyên),
 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]
7 (0 dưới dạng phao),
 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]
8 (0 như một chuỗi) , NULL,
";
var_export($xs); //=> [0, 1, 2, 3]
0 và
";
var_export($xs); //=> [0, 1, 2, 3]
1 (một mảng trống). Hãy thử một ví dụ để hiểu cách nó thực sự hoạt động:

";
 
// Filtering the array
$result = array_filter($array);                 
var_dump($result);
?>

Trong ví dụ trên, các giá trị

 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]
6 và
 [0, 1, 2, 3, false, "0", ""]
$xs = $filterFalse($xs);       //=> [0, 1, 2, 3, "0", ""]
$xs = $filterZeroString($xs);  //=> [0, 1, 2, 3, ""]
$xs = $filterEmptyString($xs); //=> [0, 1, 2, 3]

echo "
";
var_export($xs); //=> [0, 1, 2, 3]
8 cũng được xóa khỏi mảng. Nếu bạn muốn giữ chúng, bạn có thể xác định chức năng gọi lại như trong ví dụ sau:

";
 
// Defining a callback function
function myFilter($var){
    return ($var !== NULL && $var !== FALSE && $var !== "");
}

// Filtering the array
$result = array_filter($array, "myFilter");     
var_dump($result);
?>

Hàm gọi lại

";
var_export($xs); //=> [0, 1, 2, 3]
4 được gọi cho mỗi phần tử của mảng. Nếu
";
var_export($xs); //=> [0, 1, 2, 3]
4 trả về
";
var_export($xs); //=> [0, 1, 2, 3]
6, thì phần tử đó sẽ được gắn vào mảng kết quả, nếu không thì không.


Câu hỏi thường gặp liên quan

Dưới đây là một số Câu hỏi thường gặp liên quan đến chủ đề này:

  • Cách xóa các giá trị trùng lặp khỏi một mảng trong PHP
  • Cách xóa phần tử đầu tiên khỏi một mảng trong PHP
  • Cách xóa phần tử cuối cùng khỏi một mảng trong PHP
  • Cách xóa một phần tử khỏi một mảng trong PHP

Làm thế nào để bạn loại bỏ một giá trị trống từ một mảng?

Để loại bỏ các phần tử trống khỏi một mảng, phương thức Filter () được sử dụng. Phương thức này sẽ trả về một mảng mới với các phần tử vượt qua điều kiện của hàm gọi lại.filter() method is used. This method will return a new array with the elements that pass the condition of the callback function.

Hàm Array_Splice () nào cho một ví dụ?

Hàm mảng_splice () loại bỏ các phần tử được chọn khỏi một mảng và thay thế nó bằng các phần tử mới.Hàm cũng trả về một mảng với các phần tử bị loại bỏ.Mẹo: Nếu hàm không loại bỏ bất kỳ phần tử nào (độ dài = 0), mảng thay thế sẽ được chèn từ vị trí của tham số bắt đầu (xem Ví dụ 2).removes selected elements from an array and replaces it with new elements. The function also returns an array with the removed elements. Tip: If the function does not remove any elements (length=0), the replaced array will be inserted from the position of the start parameter (See Example 2).

Mảng có trống PHP không?

Sử dụng hàm sizeof (): Phương pháp này kiểm tra kích thước của mảng.Nếu kích thước của mảng bằng 0 thì mảng trống nếu không mảng không trống.If the size of array is zero then array is empty otherwise array is not empty.

Bộ lọc mảng PHP là gì?

Hàm mảng_filter () lọc các giá trị của một mảng bằng hàm gọi lại.Hàm này chuyển từng giá trị của mảng đầu vào đến hàm gọi lại.Nếu hàm gọi lại trả về true, giá trị hiện tại từ đầu vào được trả lại vào mảng kết quả.filters the values of an array using a callback function. This function passes each value of the input array to the callback function. If the callback function returns true, the current value from input is returned into the result array.