2017-04-11 109 views
-1

使用下面的數組,我想檢查數組中是否存在鍵[year]。正如你可以看到Array 1和2沒有[year],而其餘的都有。如何檢查數組是否存在[year]?基本上如果它存在,運行其他的東西運行其他東西。檢查多維數組中是否存在鍵

Array 
     (
      [0] => Array 
       (
        [filmId] => 61359 
        [url] => http://www.moviemeter.nl/film/61359 
        [title] => Unstoppable 
        [alternative_title] => 
        [year] => 2011 
        [thumbnail] => http://www.moviemeter.nl/images/covers/thumbs/61000/61359.jpg 
        [average] => 0 
        [votes_count] => 0 
        [similarity] => 100.00 
        [directors_text] => geregisseerd door Richard Harrison 
        [actors_text] => met Chen Shilony, Ruben Crow en David Powell 
        [genres_text] => Drama/Komedie 
        [duration] => 90 
       ) 
      [1] => Array 
       (
        [filmId] => 87923 
        [url] => http://www.moviemeter.nl/film/87923 
        [title] => Unstoppable 
        [alternative_title] => 

        [thumbnail] => http://www.moviemeter.nl/images/covers/thumbs/87000/87923.jpg 
        [average] => 0 
        [votes_count] => 0 
        [similarity] => 100.00 
        [directors_text] => geregisseerd door Example Director 
        [actors_text] => met Actor 1, Actor 2 en Actor 3 
        [genres_text] => Drama/Komedie 
        [duration] => 90 
       ) 
      [2] => Array 
       (
        [filmId] => 68593 
        [url] => http://www.moviemeter.nl/film/68593 
        [title] => Unstoppable 
        [alternative_title] => 

        [thumbnail] => http://www.moviemeter.nl/images/covers/thumbs/68000/68593.jpg 
        [average] => 3.3 
        [votes_count] => 191 
        [similarity] => 100.00 
        [directors_text] => geregisseerd door Tony Scott 
        [actors_text] => met Denzel Washington, Chris Pine en Rosario Dawson 
        [genres_text] => Actie/Thriller 
        [duration] => 98 
       ) 
      [3] => Array 
       (
        [filmId] => 17931 
        [url] => http://www.moviemeter.nl/film/17931 
        [title] => Unstoppable 
        [alternative_title] => Nine Lives 
        [year] => 2004 
        [thumbnail] => http://www.moviemeter.nl/images/covers/thumbs/17000/17931.jpg 
        [average] => 2.64 
        [votes_count] => 237 
        [similarity] => 100.00 
        [directors_text] => geregisseerd door David Carson 
        [actors_text] => met Wesley Snipes, Jacqueline Obradors en Mark Sheppard 
        [genres_text] => Actie/Thriller 
        [duration] => 96 
       ) 
     ) 
+0

[array_key_exists()](http://ca3.php.net/manual/en/function.array-key-exists.php) – Augwa

回答

1

嘗試提取year柱,並且如果它導致一個非空的陣列再有一個year陣列中的某處:

if(array_column($array, 'year')) { 
    //yes year exists :-) 
} else { 
    //no doesn't exist :-(
} 

如果你想檢查陣列中的每個陣列,併爲每一個做一些事情,然後就循環和檢查year

foreach($array as $values) { 
    if(isset($values['year'])) { 
     //do something with $values 
    } else { 
     //do something else 
    } 
} 
0

可以使用isset()功能:

isset($custom_array[0]['year']); 

============================== ======================

for($i = 0; $i < count($custom_array); $i++){ 
    if(isset($custom_array[$i]['year'])){ 
     echo "Position [" . $i . "]-[year] exist."; 
    } else { 
     echo "Position [" . $i . "]-[year] not exist."; 
    } 
} 
0

通過這個代碼,你可以得到彌補陣列的他們值:

<?php 

$my_array = array( 
     0 => array( 
      "filmId" => "61359", 
      "year" => "2011" 
     ), 
     1 => array( 
      "filmId" => "87923", 
     ), 
     2 => array( 
      "filmId" => "68593", 
      "year" => "2011" 
     ) 
); 
$column_name = 'year'; 
print_r(array_map(function($element) use($column_name){return isset($element[$column_name]) ? $element[$column_name] : "";}, $my_array)); 

輸出

Array 
(
    [0] => 2011 
    [1] => 
    [2] => 2011 
) 

之後,您檢查哪個數組沒有年份列。