想要获得数组值

时间:2018-07-11 12:10:17

标签: php arrays

我有一个如下数组。

在这里,我得到的数组key就像[_aDeviceTokens:protected] => Array

$array= ApnsPHP_Message Object
    (
        [_bAutoAdjustLongPayload:protected] => 1
        [_aDeviceTokens:protected] => Array
            (
                [0] => BD74940085E1579333E93B7D172CF82F5A3E0B17617D904107CD77573C42CEC9
            )

        [_sText:protected] => test
        [_nBadge:protected] => 1
        [_sSound:protected] => default
        [_sCategory:protected] => 
        [_bContentAvailable:protected] => 
        [_aCustomProperties:protected] => Array
            (
                [channel_id] => 1xxxx8
                [detail_id] => 1
            )

        [_nExpiryValue:protected] => 1500
        [_mCustomIdentifier:protected] => 
         ) 

由于数组具有对象值,所以我试图获取该键的值,

$array->_aDeviceTokens:protected[0]

但这给我一个错误。

那么我如何获得这些数组键的值?

2 个答案:

答案 0 :(得分:1)

似乎您正在尝试访问被视为数组的对象的受保护属性。

在此处查看代码:https://github.com/immobiliare/ApnsPHP/blob/master/ApnsPHP/Message.php

这些属性有一个可公开访问的“获取器”。

ApnsPHP_Message类的摘录:

public function getCustomIdentifier()
    {
        return $this->_mCustomIdentifier;
    }

因此,不要像以前那样尝试访问这些属性,而要使用相应的getter。

$custom_identifier = $message->getCustomIdentifier();

答案 1 :(得分:0)

将对象转换为数组。

$array = json_decode(json_encode($array),true);

现在,您可以像这样从 $ array 获得价值

$array['_aDeviceTokens:protected'][0]