我正在使用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) {
...}
我缺少明显的东西。
答案 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