如何引用“未合并”数组的元素?

时间:2018-08-06 01:54:56

标签: php arrays ajax

我正在使用laravel 5.6,并且调试栏允许我执行以下操作:

 $IncomingAJAX = json_decode($AJAXrequest, TRUE);
 Log::info($AJAXrequest);

产生以下结果:

[2018-08-05 20:39:11] local.INFO: array (
  0 => 
  array (
    'category' => 'This is Category 1',
    'answers' => 
    array (
      0 => 
      array (
        'question' => 'This is Question 1',
        'score' => 2,
      ),
      1 => 
      array (
        'question' => 'This is question 2',
        'score' => 3,
      ),
    ),
  ),
  1 => 
  array (
    'category' => 'Category #67',
    'answers' => 
  ...

但是我如何指代特定元素?这让我发疯。我尝试了Log::info($AJAXrequest[0].category[0].Answers[0]);Log::info($IncomingAJAX[0].category[0].Answers[0]);甚至只是Log::info([0].category[0].Answers[0])或这个Log::info(AJAXrequest['category'])都没有用。

但这可行:Log::info($AJAXrequest[0]['category']);

我真正想做的是迭代如下:

$jsonIterator = new \RecursiveIteratorIterator(
                new \RecursiveArrayIterator($AJAXrequest),
                \RecursiveIteratorIterator::SELF_FIRST);

foreach ($jsonIterator as $key => $val) {
...}

我缺少明显的东西。

1 个答案:

答案 0 :(得分:0)

您的语法似乎不正确。您正在访问数组元素。点(。)语法在PHP中无效。

尝试

133.110018015
4.36485505104
True

您需要更多地研究数组的结构。

此外,似乎$AJAXRequest[0]["category"] $AJAXRequest[0]["answers"][0]["question"] $AJAXRequest[0]["answers"][1]["question"] $AJAXRequest[1]["category"] ... 已经是一个数组,因此不需要$AJAXRequest