2013-10-22 33 views
1

我一直在这个圈子里跑来跑去......请帮忙。创建一个多维数组并访问字段

我试图创建一个基于目录和文件名解析的文件数量多维数组...

foreach ($files as $file) { 
    echo "$file[0] $file[1] <br>\n" ; #file[0]=Unix timestamp; file[1]=filename 
    $pn = explode('.', $file[1]); 
    $ndt = explode('_',array_shift($pn)) ; 
     foreach ($ndt as $arndt) { 
     $items[$arndt] = $ndt ; //this part does not work 
     echo "$ndt[0] $ndt[1] $ndt[2] $ndt[3] $ndt[4]" ; 
    } 
    print_r($items[$arndt]) ; 

}

我阵列的输出是这样的:

阵列([0] => OLPH [1] =>烧烤[2] => 03132013 [3] => 11:00 [4] =>下午2点)

注:我只在目录1个文件测试目的,但会有更多,因此需要一个多维数组...

然后我尝试使用这个访问数组在我的html:

<h4><a href="#"><?php echo "$items[$arndt]. $ndt[1]" ?></a></h4> 

....当然,这不输出打印我想要的结果....对于每个文件[1],我希望能够打印$ arndt []并使用$ items [] []记法....来访问它,但它只是打印Array [] Array [ ] .... 请帮忙 ?

由于提前,

卡洛斯

+0

变化这一行的foreach($ NDT为$阿恩特)至FOREACH($ NDT为$阿恩特=> $ V)和$项[$阿恩特] = $ NDT;到$ items [] = $ v;也改变这一行echo“$ ndt [0] $ ndt [1] $ ndt [2] $ ndt [3] $ ndt [4]”; echo“$ v [0] $ v [1] $ v [2] $ v [3] $ v [4]”; – Satya

+0

我提出了修改建议: – user2905537

+0

$ files = array(“OLPH_Barbecue_03132013_11am_2pm.pdf”); ($文件作为$文件){ echo“$ file [0] #file [0] = Unix时间戳;文件[1] =文件名 \t \t $ pn = explode('。',$ file [1]); \t \t $ ndt = explode('_',array_shift($ pn)); ($ ndt as $ arndt => $ v) \t \t $ items [] = $ v; echo“$ v [0] $ v [1] $ v [2] $ v [3] $ v [4]”; \t \t} – user2905537

回答

0

呼应/打印字符串情形数组只是给你Array。如果你正在处理多维数组,每个维都必须有自己的循环来打印出它的内容。

例如

$arr1d = array('foo' => 'bar'); // 1D array 
echo $arr1d; // outputs "Array" 

$arr2d = array('foo' => array('bar' => 'baz')); // 2D array 
echo $arr2d; // outputs 'Array'; 
echo $arr2d['foo']; // outputs 'Array' 
echo $arr2d['foo']['bar']; // outputs 'baz' 

foreach($arr2d as $key1 => $val1) { 
    echo $val1; // outputs 'Array'; 
    foreach($val1 as $key2 => $val2) { 
     echo $val; // outputs 'Baz' 
    } 
} 
+0

什么?我刚刚问了这个问题......你们很快!谢谢 !当我回家时会尝试。 – user2905537

+0

问题是我不知道数组的值是什么....数组可能会是4乘5,但我不知道....我需要一个数组迭代器来做到这一点?我能做$ arr4d = array('$ files [1]'=> array('$ ndt [0]'=>'$ ndt [1]',...)); // 4D数组....有没有一种更简单的方法来引用个别值,而无需首先遍历循环?再次感谢。 – user2905537