PHP / MYSQL:通过字典数组访问数据

时间:2018-07-09 21:49:39

标签: php mysql arrays

我从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;

任何人都可以建议适当的语法来获取这些项目及其属性吗?

预先感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

我发现人们将事物与字典相关联,这很奇怪,而无非就是多维数组。

如果您可以读取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中,它写为->