你好人有問題,數組幫助
我有一個由webservice返回的數組。
Array
(
[GetProductResult] => Array
(
[schema] => Array
(
[element] => Array
(
[complexType] => Array
(
[choice] => Array
(
[element] => Array
(
[complexType] => Array
(
[sequence] => Array
(
[element] => Array
(
[0] => Array
(
[!name] => codigo
[!minOccurs] => 0
)
[1] => Array
(
[!name] => nome
[!minOccurs] => 0
)
[2] => Array
(
[!name] => imagem
[!minOccurs] => 0
)
[3] => Array
(
[!name] => stock
[!minOccurs] => 0
)
)
)
)
[!name] => produto
)
[!minOccurs] => 0
[!maxOccurs] => unbounded
)
)
[!name] => produtos
[!msdata:IsDataSet] => true
[!msdata:UseCurrentLocale] => true
)
[!id] => produtos
)
[diffgram] => Array
(
[produtos] => Array
(
[produto] => Array
(
[codigo] => 13251
[nome] => Nova Development - Print Explosion Deluxe Mac
[imagem] => http://www.novadevelopment.com/images/3DBox_w250_tcm23-129399.jpg
[stock] => 0
[!diffgr:id] => produto1
[!msdata:rowOrder] => 0
)
)
)
)
)
我從一個Web服務使用id_produto從我的數據庫請求,但有時我得到這個錯誤:
Cannot use string offset as an array in php
和陣列的結果是:
Array
(
[GetProductResult] => Array
(
[schema] => Array
(
[element] => Array
(
[complexType] => Array
(
[choice] => Array
(
[element] => Array
(
[complexType] => Array
(
[sequence] => Array
(
[element] => Array
(
[0] => Array
(
[!name] => codigo
[!minOccurs] => 0
)
[1] => Array
(
[!name] => nome
[!minOccurs] => 0
)
[2] => Array
(
[!name] => imagem
[!minOccurs] => 0
)
[3] => Array
(
[!name] => stock
[!minOccurs] => 0
)
)
)
)
[!name] => produto
)
[!minOccurs] => 0
[!maxOccurs] => unbounded
)
)
[!name] => produtos
[!msdata:IsDataSet] => true
[!msdata:UseCurrentLocale] => true
)
[!id] => produtos
)
**[diffgram] =>**
)
)
現在我如何避免這個錯誤?即時嘗試訪問陣列與此:
$stock = $result['GetProductResult']['diffgram']['produtos']['produto']['stock'];
有人可以幫助一個如果要通過錯誤?
Cumps
我不知道如何解決你的問題。我只想說 - 你可憐的靈魂。像這樣的陣列應該被禁止。也許我們可以修改日內瓦公約來把它們定義爲酷刑? –
老實說,web服務的部分看起來是錯誤的編碼。我無法想象一個數組鍵「!msdata:IsDataSet」...看起來像一個函數調用。 –
當你得到錯誤時,第二個數組是一個「$ result」的var_dump? – ianbarker