Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP从JSON结果中获取特定项_Php_Json - Fatal编程技术网

使用PHP从JSON结果中获取特定项

使用PHP从JSON结果中获取特定项,php,json,Php,Json,我需要关于JSON数据的帮助。我试图只得到一个特殊的值,而不知道具体是哪一个 这是我的JSON数据: { "JourneyDetail":{ "Stops":{ "Stop":[{ "name":"Essen Hbf", "id":"8000098", "lon":"7.014795", "lat":"51.451351", "routeIdx"

我需要关于JSON数据的帮助。我试图只得到一个特殊的值,而不知道具体是哪一个

这是我的JSON数据:

            {
        "JourneyDetail":{
        "Stops":{
        "Stop":[{
        "name":"Essen Hbf",
        "id":"8000098",
        "lon":"7.014795",
        "lat":"51.451351",
        "routeIdx":"2",
        "arrTime":"10:38",
        "arrDate":"2018-02-22",
        "depTime":"10:41",
        "depDate":"2018-02-22",
        "track":"2"
        },{
        "name":"Duisburg Hbf",
        "id":"8000086",
        "lon":"6.775907",
        "lat":"51.429786",
        "routeIdx":"3",
        "arrTime":"10:52",
        "arrDate":"2018-02-22",
        "depTime":"10:55",
        "depDate":"2018-02-22",
        "track":"3"
        },{
        "name":"Düsseldorf Hbf",
        "id":"8000085",
        "lon":"6.794317",
        "lat":"51.219960",
        "routeIdx":"4",
        "arrTime":"11:06",
        "arrDate":"2018-02-22",
        "depTime":"11:08",
        "depDate":"2018-02-22",
        "track":"16"
        },{
        "name":"Köln Messe/Deutz Gl.11-12",
        "id":"8073368",
        "lon":"6.974065",
        "lat":"50.941717",
        "routeIdx":"5",
        "arrTime":"11:28",
        "arrDate":"2018-02-22",
        "depTime":"11:30",
        "depDate":"2018-02-22",
        "track":"11"
        },{
        "name":"Siegburg/Bonn",
        "id":"8005556",
        "lon":"7.203029",
        "lat":"50.793916",
        "routeIdx":"6",
        "arrTime":"11:42",
        "arrDate":"2018-02-22",
        "depTime":"11:43",
        "depDate":"2018-02-22",
        "track":"6"
        },{
        "name":"Montabaur",
        "id":"8000667",
        "lon":"7.825335",
        "lat":"50.444838",
        "routeIdx":"7",
        "arrTime":"12:02",
        "arrDate":"2018-02-22",
        "depTime":"12:03",
        "depDate":"2018-02-22",
        "track":"1"
        },{
        "name":"Limburg Süd",
        "id":"8003680",
        "lon":"8.096108",
        "lat":"50.382498",
        "routeIdx":"8",
        "arrTime":"12:13",
        "arrDate":"2018-02-22",
        "depTime":"12:14",
        "depDate":"2018-02-22",
        "track":"1"
        },{
        "name":"Frankfurt(M) Flughafen Fernbf",
        "id":"8070003",
        "lon":"8.570181",
        "lat":"50.053169",
        "routeIdx":"9",
        "arrTime":"12:33",
        "arrDate":"2018-02-22",
        "depTime":"12:36",
        "depDate":"2018-02-22",
        "track":"Fern 4"
        },{
        "name":"Frankfurt(Main)Hbf",
        "id":"8000105",
        "lon":"8.663785",
        "lat":"50.107149",
        "routeIdx":"10",
        "arrTime":"12:48",
        "arrDate":"2018-02-22",
        "depTime":"12:54",
        "depDate":"2018-02-22",
        "track":"7"
        },{
        "name":"Aschaffenburg Hbf",
        "id":"8000010",
        "lon":"9.143693",
        "lat":"49.980554",
        "routeIdx":"11",
        "arrTime":"13:22",
        "arrDate":"2018-02-22",
        "depTime":"13:23",
        "depDate":"2018-02-22",
        "track":"6"
        },{
        "name":"Würzburg Hbf",
        "id":"8000260",
        "lon":"9.935777",
        "lat":"49.801795",
        "routeIdx":"12",
        "arrTime":"14:07",
        "arrDate":"2018-02-22",
        "depTime":"14:10",
        "depDate":"2018-02-22",
        "track":"3"
        },{
        "name":"Nürnberg Hbf",
        "id":"8000284",
        "lon":"11.082989",
        "lat":"49.445615",
        "routeIdx":"13",
        "arrTime":"15:02",
        "arrDate":"2018-02-22",
        "depTime":"15:05",
        "depDate":"2018-02-22",
        "track":"9"
        },{
        "name":"München Hbf",
        "id":"8000261",
        "lon":"11.558339",
        "lat":"48.140229",
        "routeIdx":"14",
        "arrTime":"16:07",
        "arrDate":"2018-02-22",
        "track":"22"
        }]
        }
        }
这是我的PHP代码

$url = '....';
$content = file_get_contents($url);
$json = json_decode($content, true);
现在,我只希望在这个数组后面有一个数组(名称):

    {
    "name":"Düsseldorf Hbf",
    "id":"8000085",
    "lon":"6.794317",
    "lat":"51.219960",
    "routeIdx":"4",
    "arrTime":"11:06",
    "arrDate":"2018-02-22",
    "depTime":"11:08",
    "depDate":"2018-02-22",
    "track":"16"
    },
有时名为“Düsseldorf Hbf”的数组是第一个,有时是第三个。。。等等这是偶然的

有人有主意吗


谢谢你的帮助

获取某些对象时使用括号,例如
echo$json[3]

试试这个:

$content = file_get_contents($url);
$json = json_decode($content, true);
echo $json[3];

您可以基于和使用此解决方案

或者使用简单且可能更优化的解决方案:

$url = '....';
$content = file_get_contents($url);
$json = json_decode($content, true);

$res = getStopByName($json['JourneyDetail']['Stops']['Stop'], 'Düsseldorf Hbf');

var_dump($res);

function getStopByName($stops, $name) {
    foreach ($stops as $stop) {
        if ($stop['name'] == $name) {
            return $stop;
        }
    }
}

你的问题陈述不清楚。选择特定子数组的可用输入是什么?嘿,谢谢你的帮助。我现在明白了:致命错误:未捕获错误:在。。。这是带有$res=getStopByName($json['JourneyDetail']['Stops']['Stop'],'Düsseldorf Hbf')的行;您好,您是否将函数
getStopByName
code与其他代码一起放入了?错误表示找不到函数的定义
getStopByName
$url = '....';
$content = file_get_contents($url);
$json = json_decode($content, true);

$res = getStopByName($json['JourneyDetail']['Stops']['Stop'], 'Düsseldorf Hbf');

var_dump($res);

function getStopByName($stops, $name) {
    foreach ($stops as $stop) {
        if ($stop['name'] == $name) {
            return $stop;
        }
    }
}