2012-02-15 35 views
1

これまでの私のコードはこれまで私がこれを組み合わせたいのですが?2つのforeachループを結合して1つにまとめる方法

私は私、私は

$dir = str_replace("/var/www/13_Feb/subscriber-files/","","/var/www/13_Feb/subscriber-files/u*.[cC][sS][vV]"); 
$dir2 = str_replace("/var/www/13_Feb/subscriber-files/","","/var/www/13_Feb/subscriber-files/r*.[cC][sS][vV]"); 
をtdのために、この中を印刷したい

update:- 

を助けて何ができるか同じTDでこの

  echo "<tr>"; 
    echo "<td>". $file1."</td>"; 
    echo "<td>". $file2."</td>"; 
    } 
    echo "</tr>"; 

すなわちのように印刷したい

<table> 
      <tr> 

       <th>Imported Files</th> 
       <th>Report Files</th> 
      </tr> 
<?php 

    $dir = str_replace("/var/www/13_Feb/subscriber-files/","","/var/www/13_Feb/subscriber-files/u*.[cC][sS][vV]"); 
    $dir2 = str_replace("/var/www/13_Feb/subscriber-files/","","/var/www/13_Feb/subscriber-files/r*.[cC][sS][vV]"); 



    foreach(glob($dir) as $file) { 
      echo "<tr>"; 
      echo "<td>". $file."</td>"; 
      } 

      foreach(glob($dir2) as $file) { 
      echo "<td>". $file."</td>"; 
      } 
      echo "</tr>"; 

?> 
</table> 

+0

各ディレクトリに同じ数のファイルがありますか? dir2の最初のファイルの隣にdirの最初のファイルを表示すると言っていますか? –

答えて

0

さまざまなサイズのファイルリストを処理します。

さらに、同じテーブルに複数の「ファイルリスト」列を表示することができます。

// retrieve data 

$dirs = array(glob($dir), glob($dir2)); 

// display 

$max_files = max(array_map('count', $dirs)); 
$count_dirs = count($dirs); 

echo '<table>'; 

for($i = 0; $i < $max_files; $i++) 
{ 
    echo '<tr>'; 
    for($d = 0; $d < $count_dirs; $d++) 
    { 
    $strFile = (isset($dirs[$d][$i]) ? $dirs[$d][$i] : '[NO FILE]'); 
    echo '<td>'.$strFile.'</td>'; 
    } 
    echo '</tr>'; 
} 

echo '</table>'; 
+0

:)ここに私のコーディングhttp://pastebin.com/DQdiBarL – John

+0

そして?私はそれで何をするのですか? –

+0

:)あなたのコードはどんなテストページでもうまく動作しますが、str_replaceを置き換えたときに実際にはzendで作業していないのですが、それはzendで何ができるのですか? – John

0
$line .= "<tr>"; 
foreach(glob($dir) as $file) {  
    $line .= "<td>". $file."</td>"; 
} 
foreach(glob($dir2) as $file) { 
    $line .= "<td>". $file."</td>"; 
} 
$line .= "</tr>"; 

echo $line; 
0

それらが組み合わされ、両方が同じサイズのものであるべきであるならば、おそらくこれはGlobIteratorあなたと組み合わせるこのためMultipleIteratorを持っている5.3+

$dir1_files = glob($dir); 
$dir2_files = glob($dir2); 

for ($i =0; $i < count($dir1_files); $i++) 
{ 
    echo "<tr>"; 
    printf("<td>%s</td>", $dir1_files[$i]); 
    printf("<td>%s</td>", $dir2_files[$i]); 
    echo "</tr>"; 
} 
0

PHP(未テスト)ソリューションを、になりますあなたは、ファイルの数が異なると、それらのすべてを表示したい場合は、あなたがMultipleIterator::MIT_NEED_ANYフラグを使用することができます

$iterator = new MultipleIterator(); 
$iterator->attachIterator(new GlobIterator($dir); 
$iterator->attachIterator(new GlobIterator($dir2); 
foreach ($iterator as $current) { 
    echo "<tr>"; 
    echo "<td>". $current[0] ."</td>"; 
    echo "<td>". $current[1] ."</td>"; 
    echo "</tr>"; 
} 

:このようなソリューションを持つことができます

$iterator = new MultipleIterator(MultipleIterator::MIT_NEED_ANY); 
$iterator->attachIterator(new GlobIterator($dir); 
$iterator->attachIterator(new GlobIterator($dir2); 
foreach ($iterator as $current) { 
    echo "<tr>"; 
    echo "<td>". (isset($current[0]) ? $current[0] : '&nbsp;') ."</td>"; 
    echo "<td>". (isset($current[1]) ? $current[1] : '&nbsp;') ."</td>"; 
    echo "</tr>"; 
} 
関連する問題