Qualcosa puoi fare trasformando il json in array.
In questo codice creo prima una funzione che scorre in modo ricorsivo un array, e i vari sotto-array.
Poi con json_decode trasformo il tuo json (ne ho messo uno fittizio) in array.
A quel punto è tutto piu facile.
Il problema che mi preoccupa semmai è il fatto che tu abbia due campi chiamati title, e che un nome di campo sia dinamico ("interneship" nel tuo esempio), questo complica un po le cose.. ma se ne viene fuori.
Codice PHP:
<?php
function recursive_array_search($needle,$haystack,&$return) {
while(list($chiave,$valore)=each($haystack)){
if(is_array($valore)){
recursive_array_search($needle,$valore,$return);
}
else{
if($valore == $needle){
$return[] = array('title'=>$haystack['title'],'field'=>$chiave);
}
}
}
return $return;
}
$json = '[
{"title":"Internship","Internship":{"title":"How to Create an RSS Feed with PHP and MySQL","country":"ITALY","Sector":"TEST"}},
{"title":"Coding","Coding":{"title":"How to dev with Php","country":"FRANCE","Sector":"TESTFRANCE"}},
{"title":"Developing","Developing":{"title":"How to dev (second edition) with Php","country":"FRANCE","Sector":"TESTSECONDFRANCE"}}
]';
$parola_da_cercare = 'FRANCE';
$elenco = json_decode($json,true);
$result = recursive_array_search($parola_da_cercare,$elenco);
if(empty($result)){
echo 'Nessun record trovato';
}
else{
echo 'trovati '.count($result).' record per "'.$parola_da_cercare.'"<br>';
foreach($result as $row){
echo 'trovato nel libro "'.$row['title'].'", nel campo '.$row['field'].'<br />';
}
}