PHP: Как проверить, существует ли запись в API?

#php #arrays #wikipedia-api

#php #массивы #википедия-api

Вопрос:

Я запрашиваю API Википедии. Обычно я получаю следующее, и я повторяю выдержку.

 array:4 [▼
"pageid" => 13275
"ns" => 0
"title" => "Hungary"
"extract" => """
<p><span></span></p>n
<p><b>Hungary</b> (<span><span>/<span><span title="/ˈ/ primary stress follows">ˈ</span><span title="'h' in 'hi'">h</span><span title="/ʌ/ short 'u' in 'bud'">ʌ</span><span title="/ŋ/ 'ng' in 'sing'">ŋ</span><span title="'g' in 'guy'">ɡ</span><span title="/ər/ 'er' in 'finger'">ər</span><span title="/i/ 'y' in 'happy'">i</span></span>/</span></span>; Hungarian: <span lang="hu"><i>Magyarország</i></span> <span title="Representation in the International Phonetic Alphabet (IPA)">[ˈmɒɟɒrorsaːɡ]</span>) is a parliamentary constitutional republic in Central Europe. It is situated in the Carpathian Basin and is bordered by Slovakia to the north, Romania to the east, Serbia to the south, Croatia to the southwest, Slovenia to the west, Austria to the northwest, and Ukraine to the northeast. The country's capital and largest city is Budapest. Hungary is a member of the European Union, NATO, the OECD, the Visegrád Group, and the Schengen Area. The official language is Hungarian, which is the most widely spoken non-Indo-European language in Europe.</p>n
 

Но если запись не существует в Вики, тогда я получаю это.

 array:3 [▼
"ns" => 0
"title" => "Kisfelegyhaza"
"missing" => ""
]
 

Итак, мой вопрос в том, как мне проверить, существует ли extract?

Я попробовал следующее, но это не работает.

 $wiki_array = The data received from Wiki
if (array_key_exists('extract',$wiki_array)){
 // do something
}
 

Ответ №1:

 $wiki_array = The data received from Wiki
if( isset($wiki_array['extract']) ){
 // do something
}
 

isset($var), чтобы проверить, установлен ли этот параметр (поэтому не null)

Комментарии:

1. Привет, к сожалению, не работает. Кажется, он никогда не находит ‘extract’, хотя он определенно есть.

2. На самом деле это точечный метод, мне просто нужно было зайти глубже, чем $wiki_array[‘extract’], чтобы он работал. Спасибо

Ответ №2:

Для тех, кто сталкивается с такой же проблемой, вот решение, которое я использовал.

 foreach($wiki_array['query']['pages'] as $page){
  if( isset($page['extract']) ){
    echo '<p>';
    echo $page['extract'];
    echo '</p>';
  }
}