trim()
là cách tốt để chuẩn bị dữ liệu trước khi kiểm tra hoặc chèn dữ liệu vào. Bạn có thể sẽ muốn chuẩn bị nhiều hơn là chỉ cắt, mặc dù. Một kỹ thuật mát Tôi đã nhìn thấy trước là "ống" thông qua chức năng chuẩn bị của bạn:
$data = prepare($data, array(
'first_name' => 'trim|custom_function',
'surname' => 'trim',
));
Vẻ đẹp của nó làm theo cách này làm cho mã dễ dàng đọc được và nó vô cùng dễ dàng để chạy các chức năng trên mỗi phần tử mảng cụ thể.
Dưới đây là một chức năng tôi đã gõ lên một cách nhanh chóng:
function prepare($data, $arr){
foreach($arr as $input_name => $functions){
foreach(explode('|', $functions) as $function){
$data[$input_name] = call_user_func($function, $data[$input_name]);
}
}
return $data;
}
cảm ơn, đã bỏ lỡ những gì array_map đã trở lại - nhưng bạn có thể xác định lý do tại sao bạn sẽ concider array_walk là một hàm sai? –
nếu bạn đọc [hướng dẫn] (http://php.net/array-walk), bạn sẽ thấy rằng array_walk chỉ ** gọi ** một hàm với mỗi giá trị (và khóa) của một mảng. Vì vậy, nó sẽ có tác dụng tương tự như: 'trim ('test_data_1', 0); trim ('test_data_2', 1) '- không có bài tập, không có tác dụng phụ (và một tham số thứ hai sai để cắt, nhân tiện). Bạn * có thể * tất nhiên viết chức năng của riêng bạn cho array_walk, mà sau đó trims các phần tử mảng thực tế. –