Php 从XMLAPI调用提取结果
我已经找过了。我保证我有。但是,我无法从这个API调用中获得所需的输出。我在这里使用的示例是: 我试图简单地列出部门名称,然后是与每个部门名称相关联的等待回复计数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
有什么见解吗?你可以这样做
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']);