YALINQO:查询深度数组

YALINQO: Query deep array

Array
(
[0] => Array
    (
        [EndpointArn] => arn:aws:sns
        [Attributes] => Array
            (
                [Enabled] => true
                [Token] => APA91
                [CustomUserData] => Alcatel
            )

    )

[1] => Array
    (
        [EndpointArn] => arn:aws:sns:ap
        [Attributes] => Array
            (
                [Enabled] => true
                [Token] => APA91bGC
                [CustomUserData] => Oppo
            )

    )

)

我从源代码中得到这个数组。 我是 yalinqo 的新手,所以在尝试和错误之后,我碰巧用这段代码打印了 CustomUserData:

$result= from($Model2['Endpoints'][0]['Attributes'])->select(function($np) { return $np; });

print $result->toArrayDeep()['CustomUserData']; 

现在我想根据我选择的 CustomUserData 打印 EndpointArn,但我的代码不起作用。

这是代码:

print 
from($Model2['Endpoints'])
->select(function($np){ return $np['EndpointArn']; })
->where(function($np){return $np['Attributes']['CustomUserData'] == 'Oppo';})
->toArrayDeep()
;

错误信息:

Warning: Illegal string offset 'Attributes' in /home/u
Warning: Illegal string offset 'CustomUserData' in /home/u  
Warning: Illegal string offset 'Attributes' in /home/u    
Warning: Illegal string offset 'CustomUserData' in /home/u

此代码:

print 
from($Model2['Endpoints'])
->select(function($np){ return $np['EndpointArn']; })
->where(function($np){return $np['Attributes']['CustomUserData'] == 'Oppo';})
;

错误信息:

Catchable fatal error: Object of class YaLinqo\Enumerable could not be converted to string in

有人可以在这里遮光吗?

谢谢。

经过反复尝试,答案如下:

print 
from($Model2['Endpoints'])
->where(function($np){return $np['Attributes']['CustomUserData'] == 'Oppo';})
->select(function($np){ return $np['EndpointArn']; })
->toString()
;

结果

arn:aws:sns:ap