如何在php中获取json

如何在php中获取json,php,arrays,json,Php,Arrays,Json,我从json获得了一个数组,但我不知道如何获取bookTitle和url。 如何读取阵列中的这些项 $data = file_get_contents('C:\Users\rsanchro\Desktop\ftp brasil4-9-2015\moderna_plus-historia\MPCH-C05-P1-1.0.1-ZIP-PT\resource.json'); $datos = json_decode($data, true); print_r($datos);die; Result

我从json获得了一个数组,但我不知道如何获取bookTitle和url。 如何读取阵列中的这些项

$data = file_get_contents('C:\Users\rsanchro\Desktop\ftp brasil4-9-2015\moderna_plus-historia\MPCH-C05-P1-1.0.1-ZIP-PT\resource.json');
$datos = json_decode($data, true);

print_r($datos);die;

Results:
    Array
    (
        [topBarColor] => #000000
        [bookId] => 2aef55bf3a9dec377b4f16a8048c7f84
        [bookTitle] => História
        [unitId] => MPCH-C05-P1
        [unitTitle] => 108-127-MPCH-C05-P1-M
        [unitResources] => Array
            (
                [0] => Array
                    (
                        [type] => 03
                        [url] => resources/mphis_c06av_escultura_ontem.mp4
                        [urlToShowInsideUnit] => #/compId/id0a33b2a0471e0f444bc0a88b5bb55714
                        [title] => A escultura ontem e hoje
                        [page] => 123
                    )

            )

    )
用这个

        print_r(utf8_decode($datos['bookTitle']));
        if(is_array($datos['unitResources']) && count($datos['unitResources']) > 0){
            foreach($datos['unitResources'] as $key => $value){
                print_r($value['url']);

            }
        }

如果您只有一个数据,请使用以下命令

$bookTitle=$datos['bookTitle'];
$url=$datos['unitResources'][0]['url'];
foreach($datos as $dato){
  $bookTitle=$dato['bookTitle'];
  $urls=array();
  foreach($datos['unitResources'] as $url){
    $urls[]=$url['url'];
  }
  echo '<br>Book Title :'.$bookTitle;
  echo '<br>urls :';
  foreach($urls as $url){
    echo $url.'<br>';
  }
}
如果阵列中有多个数据,请使用以下命令

$bookTitle=$datos['bookTitle'];
$url=$datos['unitResources'][0]['url'];
foreach($datos as $dato){
  $bookTitle=$dato['bookTitle'];
  $urls=array();
  foreach($datos['unitResources'] as $url){
    $urls[]=$url['url'];
  }
  echo '<br>Book Title :'.$bookTitle;
  echo '<br>urls :';
  foreach($urls as $url){
    echo $url.'<br>';
  }
}
foreach($dato作为$dato){
$bookTitle=$dato['bookTitle'];
$url=array();
foreach($datos['unitResources']作为$url){
$url[]=$url['url'];
}
回音“
书名:”.$bookTitle; 回显“
URL:”; foreach($url作为$url){ 回显$url。“
”; } }
对于您提到的示例数组。您可以使用第一种方法。 但是,由于您使用的是数组,因此最好使用第二种方法

试试这个

echo  "Title:".$datos['bookTitle']; //To print book title

    //To print url
    if(is_array($datos['unitResources']) && count($datos['unitResources']) > 0){
                foreach($datos['unitResources'] as $key => $value){
                    echo "URL:".$value['url'] ;
                }
     }

我还建议您看看jsonselect库。它提供了一种直观的选择语法,该语法是按照CSS选择器语法建模的

JSON选择项目站点:

PHP实现: