我正在尝试在我的网站上集成一个 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/