【发布时间】:2014-01-01 04:41:54
【问题描述】:
我有一个正在努力解决的多维数组。数组是这样的:
$array => Array (1)
(
| ['WHMCSAPI'] => Array (6)
| (
| | ['ACTION'] = String(9) "getorders"
| | ['RESULT'] = String(7) "success"
| | ['TOTALRESULTS'] = String(1) "4"
| | ['STARTNUMBER'] = String(1) "0"
| | ['NUMRETURNED'] = String(1) "4"
| | ['ORDERS'] => Array (4)
| | (
| | | ['ORDER'] => Array (27)
| | | (
| | | | ['ID'] = String(3) "190"
| | | | ['ORDERNUM'] = String(10) "8782265746"
| | | | ['USERID'] = String(2) "66"
| | | | ['CONTACTID'] = String(1) "0"
| | | | ['DATE'] = String(19) "2013-12-31 16:00:42"
| | | | ['NAMESERVERS'] = NULL(0) NULL
| | | | ['TRANSFERSECRET'] = NULL(0) NULL
| | | | ['RENEWALS'] = NULL(0) NULL
| | | | ['PROMOCODE'] = NULL(0) NULL
| | | | ['PROMOTYPE'] = NULL(0) NULL
| | | | ['PROMOVALUE'] = NULL(0) NULL
| | | | ['ORDERDATA'] = String(6) "a:0:{}"
| | | | ['AMOUNT'] = String(4) "4.00"
| | | | ['PAYMENTMETHOD'] = String(9) "authorize"
| | | | ['INVOICEID'] = String(1) "0"
| | | | ['STATUS'] = String(6) "Active"
| | | | ['IPADDRESS'] = String(12) "64.50.180.53"
| | | | ['FRAUDMODULE'] = NULL(0) NULL
| | | | ['FRAUDOUTPUT'] = NULL(0) NULL
| | | | ['NOTES'] = NULL(0) NULL
| | | | ['PAYMENTMETHODNAME'] = String(11) "Credit Card"
| | | | ['PAYMENTSTATUS'] = NULL(0) NULL
| | | | ['NAME'] = String(11) "Chad Riddle"
| | | | ['CURRENCYPREFIX'] = String(1) "$"
| | | | ['CURRENCYSUFFIX'] = String(4) " USD"
| | | | ['FRAUDDATA'] = NULL(0) NULL
| | | | ['LINEITEMS'] => Array (1)
| | | | (
| | | | | ['LINEITEM'] => Array (8)
| | | | | (
| | | | | | ['TYPE'] = String(7) "product"
| | | | | | ['RELID'] = String(3) "488"
| | | | | | ['PRODUCTTYPE'] = String(21) "Other Product/Service"
| | | | | | ['PRODUCT'] = String(46) "SecureLive Addons - SecureLive Addon Domain 10"
| | | | | | ['DOMAIN'] = String(17) "2kplusgateway.org"
| | | | | | ['BILLINGCYCLE'] = String(7) "Monthly"
| | | | | | ['AMOUNT'] = String(9) "$4.00 USD"
| | | | | | ['STATUS'] = String(6) "Active"
| | | | | )
| | | | )
| | | )
| | | ['ORDER1'] => Array (27)
| | | (
| | | | ['ID'] = String(3) "189"
| | | | ['ORDERNUM'] = String(10) "6062113947"
| | | | ['USERID'] = String(2) "66"
| | | | ['CONTACTID'] = String(1) "0"
| | | | ['DATE'] = String(19) "2013-12-31 16:00:38"
| | | | ['NAMESERVERS'] = NULL(0) NULL
| | | | ['TRANSFERSECRET'] = NULL(0) NULL
| | | | ['RENEWALS'] = NULL(0) NULL
| | | | ['PROMOCODE'] = NULL(0) NULL
| | | | ['PROMOTYPE'] = NULL(0) NULL
| | | | ['PROMOVALUE'] = NULL(0) NULL
| | | | ['ORDERDATA'] = String(6) "a:0:{}"
| | | | ['AMOUNT'] = String(4) "4.00"
| | | | ['PAYMENTMETHOD'] = String(9) "authorize"
| | | | ['INVOICEID'] = String(1) "0"
| | | | ['STATUS'] = String(6) "Active"
| | | | ['IPADDRESS'] = String(12) "64.50.180.53"
| | | | ['FRAUDMODULE'] = NULL(0) NULL
| | | | ['FRAUDOUTPUT'] = NULL(0) NULL
| | | | ['NOTES'] = NULL(0) NULL
| | | | ['PAYMENTMETHODNAME'] = String(11) "Credit Card"
| | | | ['PAYMENTSTATUS'] = NULL(0) NULL
| | | | ['NAME'] = String(11) "Chad Riddle"
| | | | ['CURRENCYPREFIX'] = String(1) "$"
| | | | ['CURRENCYSUFFIX'] = String(4) " USD"
| | | | ['FRAUDDATA'] = NULL(0) NULL
| | | | ['LINEITEMS2'] => Array (1)
| | | | (
| | | | | ['LINEITEM3'] => Array (8)
| | | | | (
| | | | | | ['TYPE'] = String(7) "product"
| | | | | | ['RELID'] = String(3) "487"
| | | | | | ['PRODUCTTYPE'] = String(21) "Other Product/Service"
| | | | | | ['PRODUCT'] = String(46) "SecureLive Addons - SecureLive Addon Domain 10"
| | | | | | ['DOMAIN'] = String(11) "jbrowns.com"
| | | | | | ['BILLINGCYCLE'] = String(7) "Monthly"
| | | | | | ['AMOUNT'] = String(9) "$4.00 USD"
| | | | | | ['STATUS'] = String(6) "Active"
| | | | | )
| | | | )
| | | )
| | | ['ORDER4'] => Array (27)
| | | (
| | | | ['ID'] = String(3) "188"
| | | | ['ORDERNUM'] = String(10) "2178188116"
| | | | ['USERID'] = String(2) "66"
| | | | ['CONTACTID'] = String(1) "0"
| | | | ['DATE'] = String(19) "2013-12-31 16:00:34"
| | | | ['NAMESERVERS'] = NULL(0) NULL
| | | | ['TRANSFERSECRET'] = NULL(0) NULL
| | | | ['RENEWALS'] = NULL(0) NULL
| | | | ['PROMOCODE'] = NULL(0) NULL
| | | | ['PROMOTYPE'] = NULL(0) NULL
| | | | ['PROMOVALUE'] = NULL(0) NULL
| | | | ['ORDERDATA'] = String(6) "a:0:{}"
| | | | ['AMOUNT'] = String(4) "4.00"
| | | | ['PAYMENTMETHOD'] = String(9) "authorize"
| | | | ['INVOICEID'] = String(1) "0"
| | | | ['STATUS'] = String(6) "Active"
| | | | ['IPADDRESS'] = String(12) "64.50.180.53"
| | | | ['FRAUDMODULE'] = NULL(0) NULL
| | | | ['FRAUDOUTPUT'] = NULL(0) NULL
| | | | ['NOTES'] = NULL(0) NULL
| | | | ['PAYMENTMETHODNAME'] = String(11) "Credit Card"
| | | | ['PAYMENTSTATUS'] = NULL(0) NULL
| | | | ['NAME'] = String(11) "Chad Riddle"
| | | | ['CURRENCYPREFIX'] = String(1) "$"
| | | | ['CURRENCYSUFFIX'] = String(4) " USD"
| | | | ['FRAUDDATA'] = NULL(0) NULL
| | | | ['LINEITEMS5'] => Array (1)
| | | | (
| | | | | ['LINEITEM6'] => Array (8)
| | | | | (
| | | | | | ['TYPE'] = String(7) "product"
| | | | | | ['RELID'] = String(3) "486"
| | | | | | ['PRODUCTTYPE'] = String(21) "Other Product/Service"
| | | | | | ['PRODUCT'] = String(46) "SecureLive Addons - SecureLive Addon Domain 10"
| | | | | | ['DOMAIN'] = String(14) "blestatest.com"
| | | | | | ['BILLINGCYCLE'] = String(7) "Monthly"
| | | | | | ['AMOUNT'] = String(9) "$4.00 USD"
| | | | | | ['STATUS'] = String(6) "Active"
| | | | | )
| | | | )
| | | )
| | | ['ORDER7'] => Array (26)
| | | (
| | | | ['ID'] = String(3) "187"
| | | | ['ORDERNUM'] = String(10) "9493314051"
| | | | ['USERID'] = String(2) "66"
| | | | ['CONTACTID'] = String(1) "0"
| | | | ['DATE'] = String(19) "2013-12-31 15:58:48"
| | | | ['NAMESERVERS'] = NULL(0) NULL
| | | | ['TRANSFERSECRET'] = NULL(0) NULL
| | | | ['RENEWALS'] = NULL(0) NULL
| | | | ['PROMOCODE'] = NULL(0) NULL
| | | | ['PROMOTYPE'] = NULL(0) NULL
| | | | ['PROMOVALUE'] = NULL(0) NULL
| | | | ['ORDERDATA'] = String(6) "a:0:{}"
| | | | ['AMOUNT'] = String(4) "4.00"
| | | | ['PAYMENTMETHOD'] = String(9) "authorize"
| | | | ['INVOICEID'] = String(1) "0"
| | | | ['STATUS'] = String(6) "Active"
| | | | ['IPADDRESS'] = String(12) "64.50.180.53"
| | | | ['FRAUDMODULE'] = NULL(0) NULL
| | | | ['FRAUDOUTPUT'] = NULL(0) NULL
| | | | ['NOTES'] = NULL(0) NULL
| | | | ['PAYMENTMETHODNAME'] = String(11) "Credit Card"
| | | | ['PAYMENTSTATUS'] = NULL(0) NULL
| | | | ['NAME'] = String(11) "Chad Riddle"
| | | | ['CURRENCYPREFIX'] = String(1) "$"
| | | | ['CURRENCYSUFFIX'] = String(4) " USD"
| | | | ['FRAUDDATA'] = NULL(0) NULL
| | | )
| | )
| )
)
基本上我想得到的是订单id,基本上是$array['WHMCSAPI']['ORDERS']['ORDER']['ID'] 通过搜索域名,也就是$数组['WHMCSAPI']['ORDERS']['ORDER']['LINEITEMS']['LINEITEM']['DOMAIN']
请注意,“ORDER”键发生了变化,“LINEITEMS”和“LINEITEM”也发生了变化。
所以如果我要搜索 jbrowns.com,它会拉回订单号 189,或者如果我搜索 blestatest,它会拉回 id 188。
我尝试了 array_walk、array_search 和许多预建函数,但都没有提供我需要的信息。有没有人遇到过这种情况。
这基本上是针对 WHMCS 的,这是 getorders API 函数。如果我的一位客户需要从网站取消他们的服务,API 函数“deleteorder”需要 orderid,而我获得订单 ID 的唯一方法是搜索他们想要取消的域。
任何帮助都会非常有帮助。
谢谢, 杰夫
【问题讨论】:
-
能否提供声明数组的PHP代码?
-
构建数组的代码来自使用 WHMCS 的 cURL 的 API。虽然我很乐意为您构建阵列。
-
这里是数组:pastebin.com/6CqYuGzu 感谢观看
-
该数组声明没有 LINEITEM(S) 数组。
-
糟糕,我手动删除了 WHMCS 中的项目,因为它试图向客户收取费用。我重新创建了这些项目,并创建了一个新的 PasteBin:pastebin.com/dJsr5rG4 感谢您的关注。
标签: php multidimensional-array