• ベストアンサー

Perlでのリストに相当する記述方法

Perlからの乗り換え組です。 Perlでいうところの foreach $i(50..100){ 処理 } という記述方法、もしくは同等内容の記述は、PHPでは不可能でしょうか? Perlを使っていた頃にはこの記述方法が便利だと感じていたのですが、 複数のPHPの初期を調べてみたところ、この表記は記載されていませんでした。 よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

こんな感じでしょうか? <?PHP foreach (range(50,100) as $i) { print $i."<br>"; } ?>

Koji001
質問者

お礼

ありがとうございます。 もっと複雑になるかと思いきや、 rangeがあれば問題なし、なのですね。 さっそく使わせていただきます。 ありがとうございました。

関連するQ&A

  • perlからphpを実行して結果を得る方法

    perlのプログラムから同一サーバー内のphpを実行してその結果を取得したいのですが、うまくいきません。 print.phpというファイルの中身が <? echo "<div>1234567890</div>"; ?> だとして、これをブラウザで見た場合のソースは <div>1234567890</div> となるわけで、この1234567890をperlのプログラム内で表示するために main.cgiというプログラム内で $data = '/***/www/print.php'; open(FH,$data); @list = <FH>; foreach $data_line ( @list ) { if ($data_line =~/<div>/ ){ $data_line =~ s/<div>//i; $data_line =~ s/<\/div>//i; print = $data_line; } } close(FH); のような処理をすると echo "1234567890"; という実行前のphpの中身が表示されてしまいます。 表示したい結果はこの場合ブラウザでphpを実行した時のソースからdivタグをperl側で抜き取った 1234567890 なのですが、同じ事をperlの書き換えで実現する上手い方法があればご教授いただけますと助かります。

    • ベストアンサー
    • CGI
  • Perlでのファイル内データ処理方法について

    プログラミングを始めたばかりです。 Cygwin上でPerlを行っています。 下に示すように、計算プログラムの中にデータを記入し、そのデータを処理することは出来たのですが、外部のファイルを読みそのデータを処理する方法が分かりません。 # y = ax + bを求める @x=(1,2,3); @y=(1,4,9); for($i=0;$i<$n;$i++){ $A = $A + ($y[$i] * $y[$i]); $B = $B + ($x[$i] * $x[$i]);   ・   ・   ・ $a=・・・ $b=・・・ print("a=$a,b=$b"); パールファイル(.pl)内に @x=(1,2,3); @y=(1,4,9); のように記載すると、データが変わるたびにファイル内の数値を入れ替えないといけないと思うのですが、cygwinのウィンドウに、 $ ./lesson.pl 10 <data1.csv のように入力しEnterすると、ファイル内の数値を入れ替えないで指定したファイル(ここではdata1.csv)のデータが処理されると思うのですが、その場合パールファイルをどのように記述すればよいのでしょうか。また、cygwinのウィンドウにどのように入力すればよいのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • perl内でPHPを動かす?

    perlでhtmlを書き出しています。 そのhtmlにPHPを埋め込みたく思い、書き出されたhtmlにPHPを記述して phpとして保存。動作を確認しました。 perlで書き出している全てのページにこのPHPを埋め込みたく思い、perlの print <<EOF; ~ EOF の間に <?php ~ ?> を埋め込みましたが動きません。 当然の結果なのでしょうか… 何か方法があればご教示願います。  下記のようなページも見つけましたが、コードをperlに貼り付けても 動作しません。直接貼り付けるのではないのでしょうか? http://phpspot.org/blog/archives/2006/03/perlphp_2.html どうぞ宜しくお願いします。

    • ベストアンサー
    • Perl
  • 条件判断の記述方法

    いつも下記のような記述でまよってしまいます。 どちらがスマートな書き方なのでしょうか。 もしくはそもそもの書き方がおかしいでしょうか。 [記述方法1] foreach( string s in k.keys ) { if( s == "ok" ) goto OK; } //NGな処理 return false; //OKな処理 OK: return true; [記述方法2] bool ok_flg = false; foreach( string s in k.keys ) { if( s == "ok" ) { ok_flg = true; break; } } if( ok_flg ) { //OKな処理 }else{ //NGな処理 } return ok_flg;

  • 配列の要素数について

    私はよくperlで for ($i=0; $i<=$#hoge; $i++) {} などと書いたりするのですが、phpで同じようにしたいのですが、 その際、perlの配列最後の添字を返す$#hogeにあたるものはないものなのでしょうか? あくまでforeachなど別の方法論や複数行ロジックを書いて取得するなどではなく配列の最後の添字を簡単に取得できるかが問題なのです。

    • ベストアンサー
    • PHP
  • PHP記述エラーについて。

    PHPの記述のおかしなところ。 wordpressのテーマをそのまま使用しています。 一部 Warning: Invalid argument supplied for foreach() in …略(URL)… front-page.php on line 9 と警告が出ておかしいところがあるようです。 front-page.php の記述は以下です。 <?php get_header(); ?> <div id="primary"> <div id="content" role="main"> <?php $cats = Padd_Option::get('featured_categories', array('1', '2', '3', '4')); $i = 1; foreach ($cats as $cat) { padd_featured_categories_items($cat, 'cat-no-' . $i); $i++; } ?> <div class="clear"></div> </div><!-- #content --> </div><!-- #primary --> <?php get_sidebar(); ?> <?php get_footer(); ?> PHPは勉強中なのですが、まだまだ分からない事ばかりで、 自力ではどうにもならず。 詳しい方教えて下さい。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • Perlで早いプログラムを作りたい

    perlの初心者です。 一つの配列の構成要素が100~1000のものが1000個ほどあります。 ある配列の一つの要素が他の配列に何個づつあるかを調べています。 作ったプログラムは次の三つですがとても遅く、もっと早い方法があれば 教えてください。 1.foreach $a(@hairetsu1){     $n=0;     foreach $b(@hairetsu2){       $n++ if $a =~ $b;     }   } 2. foreach $a(@hairetsu1){     $n=grep(/$a/,@hairetsu2);  } 3. for($i=0;$i<length(@hairetsu1);$i++){    $n=0;    for($j=0;$j<length(@hairetsu2);$j++)      $n++ if $hairetsu1($i) =~ $hairetsu2($j);    }  } 上が一番早く下に行くほど遅いですがあまり違いはありません。 よろしくお願いします。

  • perlのif文(条件の指定方法)につきまして

    おそらく単純な事だと思われますが、 不慣れなものでお付き合いいただけますとありがたいです。 if( $hoge == $testdata){ # 条件が一致した場合の処理 } $hoge には、2 が入っています。(文字列) $testdata には、2,6,10 が入っています。(文字列) 1対1であれば、上記の記述でいけるのですが、 カンマ区切りの復数の値と一致判定する方法がわかりません。 まず、配列にして my @testdata_hairetu = split(/,/, $testdata); などやってみましたが、 その後の条件文との絡みなどで詰まっています。 復数値がある場合に一つ一つ照合(判定)していく方法をご教授いただけないでしょうか。 foreachの内部でifとかかなと調べ中です。 perlは記述方法がいろいろあるようなのですが、できれば短さよりもわかり易い方が有難いです。 どうぞよろしくお願いします。

  • Perlでのファイル処理方法について

    プログラミングを始めたばかりです。 Cygwin環境でPerlを行っています。計算プログラムをPerlで書いています。 下に示すように、計算プログラムの中にデータを記入し、そのデータを処理することは出来たのですが、外部のファイルを読みそのデータを処理する方法が分かりません。 # y = ax + bを求める @x=(1,2,3); @y=(1,4,9); for(<stdin>){ for($i=0;$i<$n;$i++){ $A = $A + ($y[$i] * $y[$i]); $B = $B + ($x[$i] * $x[$i]);   ・   ・   ・ $a=・・・ $b=・・・ print("a=$a,b=$b"); open (IN, $file) or die "$!"でcsvファイルに記載されてある数値をCygwin上で実行することは出来ました。 作成したプログラムとcsvファイルをCygwinで入力して、入力したcsvファイルのデータを処理(直線近似して傾きを求めたりなど)したいのですが、どうすればよいのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • phpdev4.3.0のperlの設定方法

    Windowsに PHP、MySQL、Apacheを簡単にインストールできるphpdev4.3.0をインストールしました。 パールはActivePerl 5.8.6.811をインストールしました。 PHPは正常に表示されるのですが、cgiが「500 Internal Server Error」が出て表示されません。 phpdevはc:\phpdev、パールはc:\Perlにインストールしました。 OSはMEです。それまではAN-HTTPを使っていました。念のためソフトウェアのレジストリも削除しました。 パールを正常に使えるようにするには、 c:\phpdev\Apache\conf\httpd.confファイルをいじればいいのでしょうか? ファイルを見てもよくわかりませんでした。 パールの最初の記述「#!/usr/bin/perl」に問題があるのでしょうか? phpdevはアンインストーラーが付いてないので、削除の方法がよくわからないし、AN-HTTPと同時に起動することも出来ないのでパールのローカルテストが出来なくて困っています。 Apacheの最新版をインストールしてみたのですが、上書きされずphpdevの古いバージョンが起動します。Apacheの最新版のアンインストーラを実行してもphpdevの古いバージョンが残ってしまいます。 パールを使えるように設定する方法、あるいはphpdevを完全に削除する方法を教えて下さい。 お願いします。

    • ベストアンサー
    • Perl