Мне интересно, может ли кто-нибудь помочь мне с функцией, которую я пишу. В основном я пытаюсь найти в некоторых данных JSON -LD конкретный ключ c. Данные JSON -LD были назначены массиву с помощью json_decode. Массив выглядит так, но может иметь другой формат и структуру:
{
"@context":"https://schema.org",
"@graph":[
{
"@type":"Organization",
"@id":"https://www.web.site/#organization",
"name":"Some Name",
"url":"https://www.web.site/",
"sameAs":[
"https://www.facebook.com/website",
"https://www.linkedin.com/company/website",
"https://twitter.com/website"
],
"logo":{
"@type":"ImageObject",
"@id":"https://www.web.site/#logo",
"inLanguage":"en",
"url":"https://web.site/logo.svg",
"width":200,
"height":100,
"caption":"Some Name"
},
"image":{
"@id":"https://www.web.site/#logo"
}
},
{
"@type":"WebSite",
"@id":"https://www.web.site/#website",
"url":"https://www.web.site/",
"name":"Some Name",
"inLanguage":"en",
"description":"Some description here.",
"publisher":{
"@id":"https://www.web.site/#organization"
},
"potentialAction":[
{
"@type":"SearchAction",
"target":"https://www.web.site/?s={search_term_string}",
"query-input":"required name=search_term_string"
}
]
},
{
"@type":"WebPage",
"@id":"https://www.web.site/#webpage",
"url":"https://www.web.site/",
"name":"Some Name",
"isPartOf":{
"@id":"https://www.web.site/#website"
},
"inLanguage":"en",
"about":{
"@id":"https://www.web.site/#organization"
},
"datePublished":"2017-01-01T21:21:21+00:00",
"dateModified":"2017-01-01T21:21:21+00:00",
"description":"Some description here.",
"potentialAction":[
{
"@type":"ReadAction",
"target":[
"https://www.web.site/"
]
}
]
}
]
}
Функция, которую я написал, чтобы найти ключ, выглядит следующим образом:
function findArrayKey($array, $find) {
foreach($array as $key => $value) {
if (is_array($value)) {
if((string)$key == $find){
foreach($value as $key => $value) {
$info .= $value;
}
} else {
findArrayKey($value,$find);
}
}
}
echo $info; // prints the info
return $info; // returns nothing
}
echo findArrayKey($myarray,$keyimlookingfor);
Строка echo findArrayKey в нижняя часть просто ничего не делает (я также пробовал var_dump и print_r и до сих пор ничего не получаю), но эхо внутри функции работает отлично.
Вывод эха внутри функции:
https://www.facebook.com/websitehttps://www.linkedin.com/company/websitehttps://twitter.com/website
Выходные данные эха за его пределами (с данными, возвращенными через return) пустые.
Любая помощь, которую кто-либо может оказать, будет принята с благодарностью, спасибо за все заранее.