2013-10-22 61 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