如何在PHP中获取关联数组的索引?

时间:2019-05-21 04:40:16

标签: php json

以下JSON字符串显示了所提交的两个问题的正确性,我想知道两个问题的ID,即“ submission”,“ question1”和“ question2”中的关联数组的索引。我应该怎么做?谢谢!

<?php
$test = 
'{
    "event_source": "server",
    "event_type": "problem_check",
    "submission": {
        "question1":{
            "correct":false
        }
        "question2":{
            "correct":true
        }
    }
}';

$jarray = json_decode($test, true);

3 个答案:

答案 0 :(得分:3)

1。您的json数据缺少一些,""(请检查我的输出链接以获取正确格式)

2。如果要显示每个问题提交结果,请使用foreach()

$jarray = json_decode($test, true);

foreach($jarray['submission'] as $key=>$value){
    echo $key. ' answer is '.$value['correct'].PHP_EOL;
}

输出:-https://3v4l.org/T3sh4https://3v4l.org/3lUNF

3. 如果您只想要按键 ,请执行以下操作:-

$questionIds = array_keys($jarray['submission']); 

输出:-https://3v4l.org/f0oHq

参考文献:-

json_decode()

foreach()

array_keys()

答案 1 :(得分:2)

一种相当简单的方法,但是应该可以解决问题:

$i = 0;
foreach($jarray['submission'] as $key => $val) {
  echo $key " is the index ". $i;
  $i++;
}

答案 2 :(得分:1)

您可以使用array_keys()

$newArray = array_keys($test);