访问多维数组值

时间:2015-06-16 12:17:40

标签: php arrays multidimensional-array

我有一个用户上传文件的插件,每件事都工作正常知道我必须将上传的文件名保存到数据库中我需要访问文件名

当我执行print_r()功能时;

 $files = $data['data'];
        print_r($files);

我得到了

Array
(
    [files] => Array
        (
            [0] => ../user/sadiss/_TvJYDCqzP.png
        )

[metas] => Array
    (
        [0] => Array
            (
                [date] => Tue, 16 Jun 2015 05:15:43 -0700
                [extension] => png
                [file] => ../user/sadiss/_TvJYDCqzP.png
                [name] => _TvJYDCqzP.png
                [old_name] => 10 PVAs
                [replaced] => 
                [size] => 12914
                [size2] => 12.61 KB
                [type] => Array
                    (
                        [0] => image
                        [1] => png
                    )

            )

    )

你可以看到数组还有两个数组[file]和meta [metas]我想在[name]中访问[metas]

5 个答案:

答案 0 :(得分:0)

您可以通过以下方式访问它:

$files['metas'][0]['name']

答案 1 :(得分:0)

这将获取内部数组的所有名称

foreach($files as $key=>$val)
{
   if($val == 'metas')
   {
     foreach($val as $innerKey=>$innerVal)
     {
       $file = $innerVal['name'];
     }
   }
}

答案 2 :(得分:0)

试试这个:

echo $files['metas'][0]['name'];

结果:

_TvJYDCqzP.png

答案 3 :(得分:0)

你可以这样:

$files = $data['data'];

 echo  $fileName = $data['data']['metas'][0]['file']; 

如果您获得多条记录,请执行以下操作:

foreach($files['metas']  as $key=>$val){
if($key == 'file'){
echo "File Name: ".$val;
}
}

答案 4 :(得分:-1)

试试这个..如果meta中有更多值(如meta [1])数组,它将打印所有名称值... foreach($data['data']['meta'] as $innerKey=>$innerVal) { echo $filename = $innerVal['name']; }