【问题标题】:Access multidimensional array without multiple loops访问没有多个循环的多维数组
【发布时间】:2014-06-10 23:28:02
【问题描述】:

假设我有一个格式如下的数组:

   $data = array(
        'variables' => array(
            '823h9fhs9df38h4f8h' => array(
                'name' => 'Foo',
                'value' => 'green'
            ),
            'sdfj93248fhfhf88rh' => array(
                'name' => 'Bar',
                'value' => 'red'
            )
        )
    );

假设我想访问变量数组中每个数组的名称和值。当然,您可以只循环访问主变量数组而不循环访问每个单独的项目数组吗?像这样?

foreach ($data as $k => $v) {
    $name = $data['variables'][0]['name'];
}

我确定我错过了一些简单的东西......

【问题讨论】:

  • 没有$data['variables'][0],如果你不知道密钥,那么你需要在循环中做一个循环,如果你已经知道你不知道的密钥
  • 看到密钥存储在$k中,为什么我不能使用:$data['variables'][$key]['name']
  • 这是外部数组的关键
  • 仅供参考:多维数组的多个 foreach 循环非常常见

标签: php arrays multidimensional-array key key-value


【解决方案1】:

你可以的

foreach ($data['variables'] as $k => $v) {
  $name = $v['name'];
}

【讨论】:

  • 好吧,如果我知道你在问什么... :-)
【解决方案2】:

你也可以试试这个

创建一个只包含名称的新数组..

$new_arr = array_column($data['variables'],'name' );
echo $new_arr[0].'<br/>';
echo $new_arr[1].'<br/>';

【讨论】:

    猜你喜欢
    • 2017-09-05
    • 2012-04-06
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多