Функция PHP не возвращает никакой информации при передаче через return, но будет счастливо отображаться в функции - PullRequest
0 голосов
/ 23 апреля 2020

Мне интересно, может ли кто-нибудь помочь мне с функцией, которую я пишу. В основном я пытаюсь найти в некоторых данных 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) пустые.

Любая помощь, которую кто-либо может оказать, будет принята с благодарностью, спасибо за все заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...