php - PHP/MYSQL:访问字典数组中的数据
问题描述
我从 iphone 收到一个 JSON 流,其中包含一些简单的字符串和数字以及字典数组。我想使用这些字典,本质上是将它们中的数据存储在单独的 MYSQL 记录中。
为了从 JSON 流中访问字符串和数组,我使用以下内容:
$jsonString = file_get_contents('php://input');
$jsonArray = json_decode($jsonString, true);
$authString = jsonArray['authstring'];
$itemsArray = $jsonArray['itemsArray'];
这是itemsArray
发送到服务器之前的样子:
itemsArray = (
{
lasttouchedstr = "2018-07-09 17:24:56";
localiid = 6;
iid = 0;
title = "test";
complete = 1;
userid = 99;
whenaddedstr = "2018-06-21 14:10:23";
},
{
lasttouchedstr = "2018-07-09 17:24:56";
localiid = 37;
iid = 0;
title = "how about this";
userid = 88;
whenaddedstr = "2018-07-07 16:58:31";
},
{
lasttouchedstr = "2018-07-09 17:24:56";
localiid = 38;
iid = 0;
title = reggiano;
userid = 1;
whenaddedstr = "2018-07-07 17:28:55";
}
等等
我想我应该将这些字典放入关联数组中以保存它们。
但是,我正在努力解决如何引用和获取对象的问题。据我所知,以下代码返回空值,只要$message
返回为空。
$anitem = $jsonArray['itemsArray'][0];
$message=$anitem;
$title = $jsonArray['itemsArray'][0].[item];
$message.=$title;
谁能建议正确的语法来获取这些项目及其属性?
在此先感谢您的任何建议。
解决方案
我发现人们将事物与字典联系起来很奇怪,而它只不过是一个多维数组。
如果您可以阅读 JSON,您会看到该变量将有一个包含每个条目的索引。
对于 PHP:
foreach($jsonArray as $array){
// note that $array is still an array:
foreach($array as $v){
echo "Hurray!: '$v'";
}
}
如果它真的是一个对象(或转换为一个对象),那么您唯一需要更改的是访问变量的方式(就像在任何其他语言中一样)。在 PHP 中它将是:
echo $jsonArray[0]->lasttouchedstr;
或者它是同一个循环:
foreach($jsonArray as $v){
echo $v->lasttouchedstr;
}
多维?
echo $jsonArray['itemsArray'][0][item]; // array
echo $jsonArray->itemsArray[0][item]; // if items array is an actual array and jsonArray an object.
大多数语言将书写的东西关联为.
左侧是对象。在 PHP 中它被写成->
.
推荐阅读
- julia - 我的 julia 光线追踪器返回 StackOverFlowError
- docker - 无法让 NGINX 从 docker 容器服务提供静态文件(js、css 等)
- regex - If 语句和提取值
- xamarin.forms - Xamarin Forms IOS 13 UIUserInterfaceStyle - 深色模式
- python - 从多个语料库训练模型
- c# - 如何从通用处理程序中检索会话值,并在 jquery 的 IF 语句中使用该值?
- image - 无法在颤动中将 blob 显示为图像
- python - 除了python中的文本,如何删除图像上的所有内容?
- javascript - React 上下文值未在 ComponentDidMount 中定义
- jquery - 根据类名显示块