вызов функции, возвращающий первый символ вывода массива

#php #arrays #json #curl #scripting

#php #массивы #json #curl #сценарии

Вопрос:

Извините, не совсем уверен, как это сформулировать.

У меня есть следующий PHP-скрипт, который вызывает 2 функции. Оба выводят декодированный массив. Мне нужна только 1 часть каждого массива.

 {
<?php
require_once('sipTrunkDomain.php');

//setup curl connection
//get list of SIP Trunk domains, uses CURL GET, and only return the domain header
function getTrunkDomain(){
$json = sipTrunkDomain();
//$r = json_encode($json);
$arr = json_decode($json,true);
    return $arr;
  }
//returns list of trunk domains
$trunks = getTrunkDomain();
//sets domains as an array to be passed to next function
if(!is_array($domain))
$domain = array();
foreach ($trunks as $trunk){
  $domain[] = $trunk['domain'];

}
//print_r($domain);

//uses domain name from above as a variable for the domain information API call
foreach ($domain as $dom){
  if (empty($dom)){
    echo "No Territory";
  }else{
  print $dom . " - Territory is " . getDomTerr($dom)[0] . "n";
  }
}
?>
  

1-я функция getTrunkDomain() извлекает список имен клиентов из одной функции

2-я функция getDomTerr() использует вывод первой функции в качестве ввода CURL для вывода глобальной учетной записи для клиента.

У меня работает скрипт, но он возвращает только первый символ результатов getDomTerr().

Функция 1

 $response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);

if ($err) {
  echo "Error #:" . $err;
} else {
    return $response;
}
}
  

Функция 2

 $response = curl_exec($curl);
  $err = curl_error($curl);
  curl_close($curl);
  
  if ($err) {
    echo "Error #:" . $err;
  } else {
      $temp = json_decode($response,true);
      //print_r($temp);
      return $temp[0]['territory'];
      
  }
  }
  

вывод при запуске:

 domain1 - Territory is u
domain2 - Territory is a
domain3 - Territory is a
domain4 - Territory is u
  

где «Территория — это u» должен иметь многосимвольный результат, а не просто букву u

Любая идея относительно того, почему это так. Если я вызываю функцию 2 напрямую с помощью ручного ввода для «домена», она возвращает строку полной длины.

Поскольку существует конфиденциальная информация, я не могу показать полный curl CURLOP_URL , но это результат вызова insomnia с правильным выводом, который я ищу в каждом отдельном вызове.

Я новичок в этом, поэтому ищу некоторую помощь.

Ответ №1:

оказывается, я уже устанавливал [‘территория’] в функции 2

поскольку функция уже установила возврат территории, я ссылался только на местоположение 0 вывода, а с помощью getDomTerr($dom)[0] он возвращал только первую букву.

удалено [0], и теперь оно возвращает полное название территории