Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从XMLAPI调用提取结果_Php_Xml_Arrays - Fatal编程技术网

Php 从XMLAPI调用提取结果

Php 从XMLAPI调用提取结果,php,xml,arrays,Php,Xml,Arrays,我已经找过了。我保证我有。但是,我无法从这个API调用中获得所需的输出。我在这里使用的示例是: 我试图简单地列出部门名称,然后是与每个部门名称相关联的等待回复计数 有什么见解吗?你可以这样做 foreach($apiResult['WHMCSAPI']['DEPARTMENTS'] as $department) { echo $department['NAME'].' has '.$department['AWAITINGREPLY'].' cases awaiting reply.'&l

我已经找过了。我保证我有。但是,我无法从这个API调用中获得所需的输出。我在这里使用的示例是:

我试图简单地列出部门名称,然后是与每个部门名称相关联的等待回复计数


有什么见解吗?

你可以这样做

foreach($apiResult['WHMCSAPI']['DEPARTMENTS'] as $department) {
  echo $department['NAME'].' has '.$department['AWAITINGREPLY'].' cases awaiting reply.'<br />';
}
--->


这将按照您的要求对部门进行排序。

谢谢您的编辑。更详细地说,我得到了正确的结果,只是不知道如何让它只回显名称&等待返回的depts的回复。PHP有内置的XML解析函数。您最好编辑您的问题,以包含实际的XML—这样,我们就可以展示/演示如何在不使用专有XML函数的情况下解析它。如果答案不是很大(比如25千兆字节左右),那么使用simplexml可能更容易。只是说,PHP手册中有一些例子。非常感谢!解决了的!关于如何通过等待回复值来修改输出,有什么想法吗?ie:如果销售人员有10张票,而支持人员有12张票,则显示支持人员高于销售人员,反之亦然?请参阅我的更新答案。不过,新问题确实应该注册为新问题,因为您可能不会有很多人检查一个n回答的问题。
Array ( 
   [WHMCSAPI] => Array ( 
      [ACTION] => getsupportdepartments 
      [RESULT] => success 
      [TOTALRESULTS] => 2 
      [DEPARTMENTS] => Array ( 
         [DEPARTMENT] => Array (
             [ID] => 2 
             [NAME] => Sales 
             [AWAITINGREPLY] => 5 
             [OPENTICKETS] => 5 
         ) 
         [DEPARTMENT1] => Array ( 
             [ID] => 1 
             [NAME] => Support 
             [AWAITINGREPLY] => 15 
             [OPENTICKETS] => 15 
         ) 
      ) 
   ) 
)
foreach($apiResult['WHMCSAPI']['DEPARTMENTS'] as $department) {
  echo $department['NAME'].' has '.$department['AWAITINGREPLY'].' cases awaiting reply.'<br />';
}
try {

  $apiResult =  array('WHMCSAPI' => array(
    'ACTION' => 'getsupportdepartments',
    'RESULT' => 'success',
    'TOTALRESULTS' => 2,
    'DEPARTMENTS' => array(
      'DEPARTMENT' => array(
        'ID' => 2,
        'NAME' => 'Sales',
        'AWAITINGREPLY' => 5,
        'OPENTICKETS' => 5
      ),
      'DEPARTMENT1' => array(
        'ID' => 1,
        'NAME' => 'Support',
        'AWAITINGREPLY' => 15,
        'OPENTICKETS' => 15
      )
    )
  )
  );
  echo '<pre>';
  print_r($apiResult);
  echo '</pre>';

  if($apiResult['WHMCSAPI']['RESULT'] != 'success') {
    throw new Exception('Something went wrong while fetching the data.');
  }

  if(!isset($apiResult['WHMCSAPI']['DEPARTMENTS'])) {
    throw new Exception('No departments in API response.');
  }

  if(!empty($_GET['sort'])) {
    $tmpArray = array();
    foreach($apiResult['WHMCSAPI']['DEPARTMENTS'] as $key => $value) {
      $tmpArray[$value['AWAITINGREPLY']] = $value;
    }
    $apiResult['WHMCSAPI']['DEPARTMENTS'] = $tmpArray;

    ($_GET['sort'] == 'desc') ? krsort($apiResult['WHMCSAPI']['DEPARTMENTS']) : ksort($apiResult['WHMCSAPI']['DEPARTMENTS']);
  }

  foreach($apiResult['WHMCSAPI']['DEPARTMENTS'] as $department) {
    echo $department['NAME'].' has '.$department['AWAITINGREPLY'].' cases awaiting reply.<br />';
  }
} catch (Exception $exc) {
  echo $exc;
}
if(!empty($_GET['sort'])) {
  $tmpArray = array();
  foreach($apiResult['WHMCSAPI']['DEPARTMENTS'] as $key => $value) {
    $tmpArray[$value['AWAITINGREPLY']] = $value;
  }
  $apiResult['WHMCSAPI']['DEPARTMENTS'] = $tmpArray;

  ($_GET['sort'] == 'desc') ? krsort($apiResult['WHMCSAPI']['DEPARTMENTS']) : ksort($apiResult['WHMCSAPI']['DEPARTMENTS']);
}
$tmpArray = array();
foreach($apiResult['WHMCSAPI']['DEPARTMENTS'] as $key => $value) {
  $tmpArray[$value['AWAITINGREPLY']] = $value;
}
$apiResult['WHMCSAPI']['DEPARTMENTS'] = $tmpArray;

krsort($apiResult['WHMCSAPI']['DEPARTMENTS']);