php implode multidimensional array

时间:2014-12-01 08:55:18

标签: php arrays multidimensional-array implode

我有一个数组,它以

的空数组开始
$filearray = array(array(array()));

我知道如果设置了标签ID,该怎么做,但我似乎在我建立它的地方挣扎。

while (($file = readdir($dir)) !== false)
{
    //echo $file ;

    //gets the file date, string needed decoding otherwise throws error. Thanks to stackoverflow!

    $date = @filemtime($file);
    $date = date("F d Y H:i:s.", filemtime(utf8_decode("/home/a1742406/public_html/files/$file")));
    //echo $date. "<br />";

    $size = filesize("/home/a1742406/public_html/files/$file") . ' bytes';

    $filearray = array($file, $date, $size);

    print "<pre>";
    $data = implode(" ", $filearray);
    echo $data;
    //print_r($filearray);
    print "</pre>";
}

我的文件阵列有3个部分,文件,日期和大小,但我想单独打印它们,所以我可以在它们之间有间距并将它们放入表格或列表中,但我似乎无法想象如何将它们分开要做到这一点,因为上面将它们全部打印在一行中。非常感谢任何帮助,指出我正确的方向!

感谢。

3 个答案:

答案 0 :(得分:0)

试一试:

$data = implode(" ", $filearray)."<br/>";

答案 1 :(得分:0)

如果您打算在<pre>预格式化标签内打印,那么您可以使用\n

print "<pre>";
$data = implode(" ", $filearray);
echo $data . "\n"; // <-- new line, or if you want `\n\n`, whatever how much space you want between lines
print "</pre>";

如果您还想在每个单独的行中使用file, date, and size,那么您可以使用换行符粘贴它们:

print "<pre>";
$data = implode("\n", $filearray);
echo $data . "\n\n";
print "</pre>";

如果您计划在桌面上展示它们,那么只需按照您通常的方式建立标记:

echo '<table cellpadding="10">';
echo '
    <tr>
        <th>File</th>
        <th>Date</th>
        <th>Size</th>
    </tr>
';

while (($file = readdir($dir)) !== false)
{
    // other codes inside

    echo '<tr>';
        echo "<td>$file</td>";
        echo "<td>$date</td>";
        echo "<td>$size</td>";
    echo '</tr>';

}
echo '</table>';

答案 2 :(得分:0)

由于您引用的数据位于数组中,因此您可以使用迭代和一些<BR>和/或换行符分别显示这三个项目,如下所示:

<?php

$file = 'filename';
$date = 'thedate';
$size = 'thesize';

$arr = array('file' => $file, 
                   'date' => $date, 
                   'size' => $size);

foreach ($arr as $key => $value) {    
    echo "$key: $value<BR>\n<BR>\n";
}

//Output:

file: filename

date: thedate

size: thesize

如果您希望将数据放在表格中,您可以将数据换成<tr><td>标签,如下所示:

<?php

echo "<table>\n";
foreach ($arr as $key => $value) {    
    echo "<tr><td> $key: </td><td> $value </td></tr>\n";
}
echo "</table>\n";

除了在您显示的代码中执行的操作之外,您是否还需要$ filearray?如果不是,你可以消除$ filearray并直接使用三个变量,将它们与带有implode()的换行符连接起来,并将结果赋值给变量,让代码显示其值。或者,您可以将每个变量包装在<tr><td>标记中,并且无需使用implode()。