![](/img/trans.png)
[英]PHP Check if Key Exists in Multidimensional Array and Object Combination then Get Value
[英]PHP Object Array - Check if array key exists
我有一個soap調用返回的以下對象數組:
$result = $this->soapClient->__soapCall($method, $arguments);
var_dump($result);
object(stdClass)#4 (1) {
["Jobs_GetResult"]=> object(stdClass)#5 (3) {
["Jobs"]=> array(4) {
[0]=> object(stdClass)#7 (19) {
["JobID"]=> int(55082846)
["JobName"]=> string(18) "Fix xyz"
}
}
["Errors"]=> object(stdClass)#10 (2) {
["Result"]=> int(0)
["Message"]=> string(0) ""
}
["RecordCount"]=> int(1)
}
}
我想檢查是否有任何錯誤 - 當父數組鍵已知時,這很容易,例如:
if($result->Jobs_GetResult->Errors->Result > 0){
// display message
}
問題是我不知道頂級數組鍵的名稱對於大多數調用將是什么,因為我使用的是泛型方法 - 在上面的例子中它是Jobs_GetResult
所以上面的方法可行。
在頂級數組鍵未知的情況下,如何檢查是否有任何錯誤返回?
通常,父數組鍵的名稱通常是附加了Result
的方法調用的名稱。 所以我在想做一些事情:
if($result->$method . 'Result'->Errors->Result > 0){
// display message
}
但顯然上面的語法是不正確的。 任何人都知道如何輸出$method
值並將其鏈接到$result
並將其附加到Result
有沒有其他方法可以檢查Errors數組結果是否大於1而不知道父數組鍵是什么?
嘗試這個:
$result = $this->soapClient->__soapCall($method, $arguments);
$firstKey = key($result);
if (!empty($firstKey) && !empty($result->{$firstKey}->Errors->Result)) {
// display message
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.