PHPのforeachループで特定の変数(値)にのみコードを実行する方法
次のような配列があるとします。
$marks = [45, 67, 89, 34, 98, 57, 77, 30];
この配列の中から「40未満の値」だけを2倍にし、それ以外の値はそのまま出力したいケースを考えてみましょう。期待する出力は以下のとおりです。
45 67 89 68 98 57 77 60
ご覧のとおり、40未満だった「34」と「30」がそれぞれ2倍されて「68」「60」になり、その他の値は元のまま表示されています。
サンプルコード
この処理を実現するPHPコードは以下のとおりです。foreachループで配列の各要素を1つずつ取り出し、if文による条件分岐を組み合わせることで、特定の値にだけ処理を適用できます。
<!DOCTYPE html>
<html>
<body>
<?php
$marks = [45, 67, 89, 34, 98, 57, 77, 30];
echo "点数は以下のとおりです", "<br>";
foreach($marks as $tempMarks){
if($tempMarks < 40){
$tempMarks = $tempMarks * 2;
}
echo $tempMarks, "<br>";
}
?>
</body>
</html>実行結果
上記のコードを実行すると、次のような出力が得られます。
点数は以下のとおりです 45 67 89 68 98 57 77 60
ポイント解説
このコードのポイントは次の2つです。
- foreachループ: 配列$marksから要素を1つずつ$tempMarksに取り出しながら処理を行います。
- if文による条件分岐: 値が40未満の場合のみ2倍する処理を実行し、それ以外の値はそのまま出力します。
なお、ループ内で一時変数$tempMarksを書き換えても、元の配列$marks自体は変更されません。元の配列も同時に更新したい場合は、参照渡し(foreach($marks as &$tempMarks))を使うか、forループでインデックスを指定して値を代入してください。
-
AutoItでWindowsの自動化スクリプトを作成する方法
Windowsには自動化のためのツールが数多く用意されています。標準搭載の「タスク スケジューラ」でタスクを予約実行したり、「フォルダーの操作」でフォルダのイベントを設定したりすることが可能です。しかし、こうした機能では物足りず、より複雑で強力な自動化ツールをお探しなら、AutoItは自動化スクリプトを作成するうえで非常に有用な選択肢となります。 AutoItはバッチスクリプトよりもはるかに強力なスクリプト言語であり、Windows上のほぼあらゆる種類のタスクを自動化できます。 はじめに AutoItは決して難解なスクリプト言語ではありません。何らかのプログラミング経験があれば、ごく簡単に習
-
SAPとPHPを統合する方法:RFCとWebサービスによる連携の基本
SAPとPHPの連携方法 SAPシステムとPHPアプリケーションを接続する手段はいくつか存在しますが、その中でも開発者の間で特に広く利用されているのがWebサービスとRFC(Remote Function Call:リモートファンクションコール)の2つです。 SAPRFC拡張モジュールとは SAPRFCは、PHP 4およびPHP 5向けに提供されている拡張モジュールです。このモジュールを活用することで、PHPスクリプトからSAP R/3上のABAPファンクションモジュールを直接呼び出すことが可能になります。 主な活用シーン Webアプリケーションの構築: PHP言語を使用して、SAP R