Cách xử lý array trường hợp này trong PHP
Giả sử $array là kết quả của một truy vấn MysQL. $array có cấu trúc như sau:
$array =array("Tú Xương","Tú Mỡ","Tú Sụn","Tú Bà","Tú Ông","Tú Váp");
Bây giờ mình cần hiển thị nội dung như thế này:
Tú Xương, Tú Mỡ, Tú Sụn và 3 người khác.
Đơn giản mà phức tạp. Hy vọng ai đó có thể giúp mình.
2 CÂU TRẢ LỜI
Mình tự có câu trả lời:
$count = COUNT($array) - 3;
list( $first, $second, $third) = $array;
echo $first . ', ' . $second . ', ' . $third.' và '.$count .' người khác.';
Bài toán này bạn phải check xem $count
có <=3
không đã.
Nếu mảng mà có không quá 3 phần tử thì chạy sẽ bị lỗi, hoặc in ra message của bạn sẽ không hợp lý (Tú Xương, Tú Mỡ, Tú Sụn và 0 người khác
)
@thangtd90 Ok, mình hiểu mà, còn phải check cả trường hợp chỉ có 1, 2, hoặc 3 người trong array vì trong hiển thị có dấu phảy "," và chữ "và". Bài toán thực tế của mình là hiển thị avatar nên đỡ được phần lằng nhằng này. Cảm ơn bạn.
function tham khảo
<?php
$array =array("Tú Xương","Tú Mỡ","Tú Sụn","Tú Bà","Tú Ông","Tú Váp");
function userLimit($users = [], $limit = 3) {
$str = '';
$users_chunk = array_chunk($users, $limit);
$str .= count($users_chunk) ? implode(', ', $users_chunk[0]) : '';
if(count($users_chunk) > 1) {
$str .= " và ".(count($users) - $limit)." người khác";
}
return $str;
}
echo userLimit($array);
// Tú Xương, Tú Mỡ, Tú Sụn và 3 người khác
?>