如何使用PHP访问关联数组中的值



我有一个数组,它是使用Amazon SimpleDb进行选择查询的结果。

下面是print_r($result);

的示例数据
Array ( [0] => Array ( [Name] => 5140ede647e74
                       [Attributes] => Array (
                            [0] => Array ( [Name] => test_id [Value] => 5140ede647e74 )
                            [1] => Array ( [Name] => test_name [Value] => test1 )
                            [2] => Array ( [Name] => last_update [Value] => 1363209702 )
                            [3] => Array ( [Name] => created [Value] => 1363209702 ) ) ) ) 

如果我想提取test_id和test_name,我该怎么做?我目前正在执行以下操作

<?php foreach ($result as $item) {
    echo $item['Attributes'][0]['Value']; 
    echo $item['Attributes'][1]['Value'];
} ?>

但是我想通过引用"test_id"one_answers"test_name"来做到这一点,因为当我删除数据所在的域并重新输入数据时,每个属性的顺序可以改变,所以我不能相信$item['Attributes'][0]['Value']将始终是test_id

谢谢!

foreach ($result as $item) {
  foreach ($item['Attributes'] as $keyvalue) {
    if ($keyvalue['Name'] == 'test_id' || $keyvalue['Name'] == 'test_name') {
      echo $keyvalue['Value'];
    }
  }
}

你需要重新定义数组

$newArray = array();
foreach ($result as $key=>$row)
{        
    foreach ($row['Attributes'] AS $row2)
    {
         $newArray[$key][$row2['Name']] = $row2['Value'];
    }       
}

编辑:这取决于你需要做什么-这是我首选的方法,如果我计划做大量的工作与结果集-我只需要迭代通过集一次,然后它的格式,其中的数据可以快速访问。

下面将通过引用运行数组的最后一部分。因此,您所做的编辑将反映在$result数组中。

foreach ($result[0]['Attributes'] as &$item) {
    if ($item['Name'] == 'test_id') // do something
}

相关内容

  • 没有找到相关文章

最新更新