在PHP中访问多维关联数组时出错(AWS / ResulData)

时间:2018-12-15 15:34:25

标签: php amazon-web-services multidimensional-array amazon-rekognition

我一直在尝试使用PHP通过AWS Rekognition实现名人识别。我能够使用来获取ResultData,

$result = $client->recognizeCelebrities();

然后我将$ result转换为一个数组,

$postResult = (array) $result;

我尝试使用来打印数组$ postResult,

echo '<pre>';
print_r($postResult);
echo '</pre>';

它打印出类似的内容,

Array
(
 [Aws\Resultdata] => Array
 (
   [CelebrityFaces] => Array
   (
     [0] => Array
     (
      [Name] => Emily Blunt                            
     )
   )
  )
)

我只想打印“名称”值。所以我用

echo $postResult['Aws\Resultdata']['CelebrityFaces'][0]['Name']; 

但是它会引发错误,例如未定义的索引:Aws \ Resultdata

我也尝试过使用foreach循环,但是会导致相同的错误

foreach ($postResult as $array) {
    echo $array['Name'];
}

这是$ result的输出,

Aws\Result Object
 (
  [data:Aws\Result:private] => Array
  (
   [CelebrityFaces] => Array
   (
    [0] => Array
    (
     [Name] => Emily Blunt                         
    )                          
   )
  )
 )

几天前我才刚开始使用PHP,所以我只是一个初学者。而且,我尝试搜索特定的答案,但始终抛出相同的错误。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

$result是类Aws\Result的对象。根据{{​​3}},以下方法应该起作用:

$celebFaces = $result->get('CelebrityFaces');
foreach($celebFaces as $face) {
    echo $face['Name'];
}