我有一个包含大量生日的.txt列表,格式如下:

1975-12-13|Amy Lee|amylee@gmail.com

我想创建php代码,将通过整个名单,找到谁有今天的生日,并列出他们的名字.

我设法做到了这一点,但它只显示一个名字,即使同一天有多个生日:

$f=file('birthday.txt');
$today=date('m-d');
for ($i=0; $i<count($f); $i++) {
    $info=explode ('|',$f[$i]);
    if (substr($info[0],5)==$today) {
        $firstlastname= $info[1];
        $message=''.$firstlastname.'';
}
}

return ''.$message.'';

我想我应该以某种方式在那里使用Foreach,我显然不是PHP方面的专家,但我不知道如何做到这一点.有什么建议吗?

谢谢!

推荐答案

您当前的代码是正确的,唯一的问题是您正在覆盖循环中的$message变量,因此在最后您将只得到一个名称.

要解决此问题,请使用. operator和换行符(只是为了以适当的方式显示数据).

$f=file('birthday.txt');
$today=date('m-d');
$message = '';
for ($i=0; $i<count($f); $i++) {
    $info=explode ('|',$f[$i]);
    if (substr($info[0],5)==$today) {
        $firstlastname= $info[1];
        //concat each name with a new line and remove the initial empty string, 
       //you can use commas instead of new lines as well
        $message .= $firstlastname.'<br/>';
    }
}

echo "These people have a birthday today: ".$message;

Php相关问答推荐

邮箱打开跟踪器不工作时发送邮件使用laravel调度程序

Laravel迁移返回SQL错误,但SQL有效且工作正常

如何优化-PHP 7.3.14+Laravel 6

在没有谷歌云客户端PHP库的情况下将图像上传到PHP中的Google存储API?

在WooCommerce中禁用特定日期之前的免费送货

WooCommerce数量减号和加号图标未显示

用于计算付款费用的WooCommerce管理编辑产品中的自定义复选框

为什么本地主机(Xampp)上的laravel运行速度比普通html站点慢?

使用php ZipArhive类将Zip压缩文件分成多个部分

CKEDITOR-如何在PHP中判断提交后的空数据

如何使用PHP从TXM(XML)标记中读取特定属性

如何从 URL 核心 PHP 中的 API 获取 JSON?

Laravel 10 中的自定义类未找到

使用 Spomky Labs JWT 框架中的 verifyWithKey 验证 id_token JWT 的签名需要 30 秒以上

使用产品自定义字段作为 WooCommerce 中特定用户角色的折扣百分比

使用自定义规则进行 Livewire 验证不会显示错误

服务器遇到内部错误或配置错误,无法完成您的请求

Php 的新WeakMap - 枚举曾经被垃圾收集过吗?

Eloquent 的模型更新了它应该 laravel php 的更多行

将参数传递给 laravel 9 工厂