3

映画 API からデータを取得しようとしています。形式は次のとおりです。

page => 1
results =>
   0 =>
    adult =>
    backdrop_path => /gM3KKixSicG.jpg
    id => 603
    original_title => The Matrix
    release_date => 1999-03-30
    poster_path => /gynBNzwyaioNkjKgN.jpg
    popularity => 10.55
    title => The Matrix
    vote_average => 9
    vote_count => 328
  1 =>
    adult =>
    backdrop_path => /o6XxGMvqKx0.jpg
    id => 605
    original_title => The Matrix Revolutions
    release_date => 2003-10-26
    poster_path => /sKogjhfs5q3aEG8.jpg
    popularity => 5.11
    title => The Matrix Revolutions
    vote_average => 7.5
    vote_count => 98
 etc etc....

最初の要素 [0] のデータ (backdrop_path、original_title など) のみを取得するにはどうすればよいですか? 私はPHP配列が初めてです:)。

そしてもちろん、これは私が配列データを出力するために使用したものです:

 print_r($theMovie)

どんな助けでも素晴らしいでしょう!

4

5 に答える 5

5

別の解決策:

$arr = reset($datas['results']);

配列の最初の要素の値を返します。配列が空の場合は FALSE を返します。

また

$arr = current($datas['results']);

current() 関数は、内部ポインタが現在指している配列要素の値を返すだけです。ポインターはまったく移動しません。内部ポインターが要素リストの末尾を超えている場合、または配列が空の場合、current() は FALSE を返します。

于 2013-03-15T16:15:53.840 に答える
2

これで配列を指すことも、次の$theMovie['result'][0]['backdrop_path'];ようにループすることもできます。

foreach($theMovie['results'] as $movie){
   echo $movie['backdrop_path'];
}
于 2013-03-15T16:09:10.243 に答える
1

このすべてのコードが変数に格納されていると仮定します$datas

$results = $datas['results'];
$theMovie = $results[0];
于 2013-03-15T16:08:08.020 に答える
1

試す

$yourArray['results'][0]

ただし、結果の配列が空の場合はエラーが発生することに注意してください。

于 2013-03-15T16:08:22.073 に答える
1

を使用array_shiftして最初の要素をポップオフし、それが有効であることを確認できます (結果がない場合、または項目が配列でない場合にarray_shift返されます)。null

$data = array_shift($theMovie['results']);
if (null !== $data) {
    // process the first result
}

foreachすべての結果を反復処理する場合は、 でループ whileループを実行できますarray_shift

foreach($theMovie['results'] as $result) {
    echo $result['backdrop_path'];
}

while ($data = array_shift($theMovie['results'])) {
    echo $data['backdrop_path'];
}

または、実際に設定さ$theMovie['result'][0]['backdrop_path'];れていることを確認した後、すでに提案されているように使用してください。$theMovie['result'][0]

于 2013-03-15T16:17:20.273 に答える