Json到PHP - 如何从嵌套在更大数组中的数组中获取特定值

时间:2016-09-25 07:58:43

标签: php json codeigniter

我正在尝试使用TheMovieDatabase API来获取一些信息以放在我的脚本上。 我已经使用

正确解码了输出
$data['moviecrew'] = json_decode($movie_crew);

现在,$ data ['moviecrew']数组如下:

  

“剧组”:[{ “credit_id”: “52fe43409251416c750094c5”, “部”: “导演”, “ID”:59026, “工作”: “导演”, “名”:“佩顿   芦苇”, “profile_path”: “/ h9lEnyQ60EjKRT3ZAOcrqQVlwn3.jpg”},{ “credit_id”: “52fe43409251416c750094f3”, “部”: “写作”, “ID”:52934, “工作”: “剧本”, “名”: “尼古拉斯   斯托勒”, “profile_path”: “/ qwcx9bdVhmyjWb0KOCdRHDXoFZ9.jpg”},{ “credit_id”: “52fe43409251416c750094f9”, “部”: “写作”, “ID”:62763, “工作”: “剧本”, “名”: “Jarrad   Paul“,”profile_path“:”/ qWaXQi5Pz6jEKw9E2xRuX74phiB.jpg“},..

我想做的是将“Director”名称放入我的PHP脚本中。 我尝试了以下代码:

<?php if($moviecrew->crew->job == "Director"){echo $moviecrew->crew->name;} ?>

不幸的是它不起作用,它给了我以下错误:

  

遇到PHP错误   严重性:注意   消息:尝试获取非对象的属性   文件名:film / filmsheet.php   行号:36   回溯:   文件:/Applications/XAMPP/xamppfiles/htdocs/domain.com/application/views/film/filmsheet.php   行:36   功能:_error_handler   文件:/Applications/XAMPP/xamppfiles/htdocs/domain.com/application/controllers/Film.php   行:106   功能:查看   文件:/Applications/XAMPP/xamppfiles/htdocs/domain.com/index.php   行:315   功能:require_once

第36行只是:

<?php if($moviecrew->crew->job == "Director"){echo $moviecrew->crew->name;} ?>

我该如何解决这个问题?谢谢你的支持。

1 个答案:

答案 0 :(得分:1)

还有一些问题,其中一个可能是代码示例中的复制/粘贴错误。

首先您有$data['moviecrew'],然后尝试使用问题中不存在的变量$moviecrew。 (它是否存在于代码中?)

假设您已完成$moviecrew = $data['moviecrew'],您将遇到以下问题:

&#34;乘员&#34;是一个数组而不是一个对象,所以你需要遍历它们。

foreach ($moviecrew->crew as $crewMember) {
    if ($crewMember->job === 'Director') {
        echo $crewMember->name;
    }
}

但是你想要只提取导演的名字,所以如果我们假设总是只有一个导演: -

$director = null;

foreach ($moviecrew->crew as $crewMember) {
    if ($crewMember->job === 'Director') {
        $director = $crewMember->name;
        break;
    }
}

if (!is_null($director)) {
    echo $director;
}