php - 通过JSON搜索构建MySQL Insert?

标签 php mysql arrays openid var-dump

我正在尝试在我的网站上集成一个 OpenID 登录系统。我已经使用了提供的代码,登录系统确实正确返回了我的数据,并且它已成功存储在 PHP 中。

从 OpenID 返回的数据:

Array
(
    [family_name] => Doe
    [name] => John Doe
    [account_type] => BUSINESS
    [given_name] => John
    [address] => Array
        (
            [postal_code] => 12345
            [locality] => Test
            [region] => NE
            [country] => US
            [street_address] => 123 Main Street
        )

    [verified_account] => true
    [language] => en_US
    [zoneinfo] => America/Chicago
    [locale] => en_US
    [phone_number] => 5553891234
    [email] => johndoe@test.com
    [account_creation_date] => 2008-03-06
    [birthday] => 2000-01-01
    [age_range] => 18-25
) 

然后我使用 var_dump 将 JSON 转换为数组。

打印var_dump后的数据时,我的数据如下:

array(14) { ["family_name"]=> string(9) "Doe" ["name"]=> string(13) "John Doe" ["account_type"]=> string(8) "BUSINESS" ["given_name"]=> string(3) "John" ["address"]=> array(5) { ["postal_code"]=> string(5) "12345" ["locality"]=> string(5) "Test" ["region"]=> string(2) "NE" ["country"]=> string(2) "US" ["street_address"]=> string(32) "123 Main Street" } ["verified_account"]=> string(4) "true" ["language"]=> string(5) "en_US" ["zoneinfo"]=> string(15) "America/Chicago" ["locale"]=> string(5) "en_US" ["phone_number"]=> string(10) "5553891234" ["email"]=> string(20) "johndoe@test.com" ["account_creation_date"]=> string(10) "2008-03-06" ["birthday"]=> string(10) "2000-01-01" ["age_range"]=> string(5) "18-25" }

现在我的问题变成了(这就是我卡住的地方)我如何遍历数组并只提取数据?我正在尝试根据创建用户帐户的数据构建 MySQL 插入。

我宁愿不只是假设用户的姓氏将是存储在数组中的第一件事。有没有一种方法可以轻松地搜索数组并只返回数据?

我查看了 print_r 和其他一些方法,但似乎一切都返回 ["family_name"]=> string(9) "Doe" 而不仅仅是 Doe.

最佳答案

如果您有 JSON 字符串,您可以使用 json_decode()这会将它变成一个数组。然后,您可以使用常规数组语法获取任何属性的值。

例如。

$user_info = json_decode($json_string, true);
$family_name = $user_info["family_name"]

关于php - 通过JSON搜索构建MySQL Insert?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623393/

相关文章:

mysql - 在表中查找过去几周没有事件的记录

mysql - 在SQL中将两列值相除并将结果插入新列

php - 将 PHP 生成的 JSON 保存到文本文件

PHP session ID 随每个请求而变化

php - 如何从数组中获取行? mysqli

c - 如何访问 struct 中的成员作为 double 数组和 struct 中成员的地址作为数组?

java - 将 int 数组转换为 ArrayList,反之亦然

php - 继承和方法参数 PHP

PHP Insert INTO 不插入数据

c - C中没有固定大小的字符数组