从另一个JSOn对象内的JSOn对象中获取密钥';s的位置


Get a key from an JSOn object inside another JSON object only knowing it's position

因此,我有以下JSON对象作为示例:

 {
  "employees": {
    "employee300": {
      "number" : "example",
      "Name" : "example",
      "position" : 1
    },
    "employee456": {"number" : "example",
      "Name" : "example",
      "position" : 2},
    "employee120":{"number" : "example",
      "Name" : "example",
      "position" : 3}
}
}

我只有职位,我想得到员工的id。例如,我的职位号是2,我需要得到"employee456"的id。

我知道PHP中有很多关键函数,但我想知道如何让我的代码在我的场景中工作。如果有这样的解决方案,我也可以将json转换为数组。

我不确定你是想在JS还是PHP中这样做,假设是后者。

<?php function get_employee_at_pos($employees, $pos)
{
    foreach ($employees as $key => $value) {
        if ($value['position'] == $pos) {
            return $key;
        }
    }
    return false;
}

使用var keys = Object.keys(obj)获取密钥,然后使用myobject[keys[1]]。(1对应于position - 1)。

编辑:在php 中

$keys = array_keys(myobject);和使用$myobject[$keys[1]]

EDIT 2:在php中,您需要在数组中加载json

$myjson = json_decode(file_get_contents("yourfile.json"), true); // loads yourfile.json and converts to a php array.