You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何从JSON文件获取数组值及遍历用户ID实现邮件发送?

1. 如何在PHP中从JSON文件获取数组的值?

咱们可以分几步轻松实现这个需求:

  • 先用file_get_contents()读取JSON文件的内容,这个函数能直接把文件内容转换成字符串。
  • 再用json_decode()把JSON字符串解析成PHP数组,记得传第二个参数true,这样得到的是关联数组(不传的话会返回对象)。
  • 最后就像访问普通PHP数组一样,直接取值就行啦。

举个实际例子,假设你有个data.json文件,内容是:

{"site": "PHP学习站", "version": "8.3", "tags": ["后端", "脚本语言"]}

对应的PHP代码:

// 读取JSON文件内容
$jsonStr = file_get_contents('data.json');

// 解析为关联数组
$dataArr = json_decode($jsonStr, true);

// 检查解析是否成功(避免JSON格式错误导致的问题)
if ($dataArr === null) {
    die('JSON解析失败:' . json_last_error_msg());
}

// 获取并输出数组值
echo '站点名称:' . $dataArr['site'] . '<br>';
echo 'PHP版本:' . $dataArr['version'] . '<br>';
echo '第一个标签:' . $dataArr['tags'][0];
2. 遍历API返回的JSON数据中的用户ID并发送邮件

针对你给出的{"users":[{"id":"14"},{"id":"19"}]}这个JSON数据,咱们这么来处理:

  • 先把API返回的JSON字符串解析成PHP数组(同样用json_decode()加true参数)。
  • 用foreach循环遍历users数组,每次循环取出单个用户的id。
  • 在循环内部编写发送邮件的逻辑,PHP基础场景用mail()函数就行,实际项目里用PHPMailer这类库会更稳定可靠,这里先给基础示例。

示例代码如下:

// 假设这是API返回的JSON字符串
$apiResponse = '{"users":[{"id":"14"},{"id":"19"}]}';

// 解析为关联数组
$userList = json_decode($apiResponse, true);

// 前置检查:确保解析成功且用户列表存在
if ($userList === null || !isset($userList['users']) || !is_array($userList['users'])) {
    die('数据解析错误或用户列表不存在');
}

// 遍历每个用户ID,发送邮件
foreach ($userList['users'] as $user) {
    $userId = $user['id'];
    
    // 构建邮件参数
    $to = "user_{$userId}@yourdomain.com"; // 假设邮箱格式为user_ID@xxx.com
    $subject = "给用户ID {$userId}的专属通知";
    $message = "您好,这是发送给用户ID {$userId}的邮件内容,请查收。";
    $headers = 'From: noreply@yourdomain.com' . "\r\n" .
               'Reply-To: support@yourdomain.com' . "\r\n" .
               'X-Mailer: PHP/' . phpversion();
    
    // 发送邮件并反馈结果
    if (mail($to, $subject, $message, $headers)) {
        echo "给用户ID {$userId}的邮件发送成功<br>";
    } else {
        echo "给用户ID {$userId}的邮件发送失败<br>";
    }
}

如果是从真实API获取数据,你可以用file_get_contents()或者cURL请求API拿到JSON字符串,比如:

// 用file_get_contents请求API
$apiUrl = 'https://your-api-address.com/get-users';
$apiResponse = file_get_contents($apiUrl);

内容的提问来源于stack exchange,提问作者Héctor A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:38:53