****************
hoge/1
hoge/2
hoge/3
hoge/4
****************
そこで以下のプログラムを実行しましたら
****************
<?php
foreach (glob('hoge/*',GLOB_ONLYDIR) as $f) {
echo "", $f ,"";}
?>
****************
結果
****************
1
2
3
4
****************
と表示されるのですがこれを
奇数列目の数字の左にaの文字
偶数列目の数字の右にbの文字を付けたいのですがどのようにすればいいでしょうか?
****************
a1
2b
a3
4b
****************
ベタですけど、こんな感じではどうですか?
<?php $i = 1; foreach (glob('hoge/*',GLOB_ONLYDIR) as $f) { $s_head = $s_tail = ''; if ($i % 2 == 1) { $s_head = 'a'; } else { $s_tail = 'b'; } echo $s_head . $f . $s_tail; $i += 1; } ?>
ベタですけど、こんな感じではどうですか?
<?php $i = 1; foreach (glob('hoge/*',GLOB_ONLYDIR) as $f) { $s_head = $s_tail = ''; if ($i % 2 == 1) { $s_head = 'a'; } else { $s_tail = 'b'; } echo $s_head . $f . $s_tail; $i += 1; } ?>
glob() を使うと指定したパターンにマッチする形でファイル名(ディレクトリ名)を取得してしまいます。
__例のものだと、hoge/1, hoge/2, hoge/3, hoge/4
echo する前に basename()や preg_match() などでパターン指定に使った部分を除去する作業が必要でしょう。
foreach (glob('hoge/*',GLOB_ONLYDIR) as $f) {
$flg = empty($flg);
if ($flg) print 'a';
print basename($f);
if (!$flg) print 'b';
print "\n";
}
順番に左右に振るだけなら算術演算するまでも無く、フラグを反転するだけでもOKかと。
コメント(0件)