ホームページ  >  記事  >  バックエンド開発  >  サンプルコードを使用した PHP 配列ループ操作の詳細な紹介_PHP チュートリアル

サンプルコードを使用した PHP 配列ループ操作の詳細な紹介_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:13:34668ブラウズ

PHP 配列は非常に一般的に使用されるため、PHP 配列のループ操作を研究し、ここで共有しました。皆さんのお役に立てれば幸いです。 PHP は基本的に配列言語です。多くの場合、PHP の配列ループ操作を実行する必要があります。1 つは foreach で、もう 1 つは while です。どちらが優れているか、どちらが劣っているかについては議論があります。この問題は長い間、私はずっと抱えてきました。 詳細には触れませんが、今後の CPU 時間を節約するために、以下に要約します。

ループ内で、配列の「読み取り」 " 操作が実行されるため、foreach は while より高速であり、PHP 配列ループ操作には表示する形式がありません。クリップボードにコピーしてコードを印刷しますか?

コードをコピーします コードは次のとおりです:

foreach($ arrayas$value){
echo$value;
}
while(list($key)=each($array) ){
echo$array[$key]
}
foreach($arrayas$value){
echo $value;
}
while(list($key)=each($array)){
echo$array[ $key];
}

配列の「書き込み」操作はループ内で実行されるため、while はforeach よりも高速です:

フォーマットなしでクリップボードにコピーしてコードを表示します
コードは次のとおりです: foreach($arrayas$key=>$value){ echo$array [$key]=$value.'...';
}
while(list($key)=each($array) ){
$array[$key]=$array[$key].'. .';
}
foreach($arrayas$key=>$value){
echo$array[$key]=$value .'...'
}
while(list($key)=each( $array)){
$array[$key]=$array[$key].'...';
}


概要: 一般に、foreach には値のコピーが含まれるため、while よりも時間がかかると考えられています。実際、ループ内で配列を読み取るだけの場合、foreach は非常に高速です。これは、PHP で使用されるコピー メカニズムが「参照によるコピー、書き込み時のコピー」であるためであり、この観点から見ると、読み取り操作が効率的になります。 foreach を理解するのは難しくありません。さらに、foreach は配列書き込み操作の処理には適していないため、ほとんどの場合、foreach($arrayas$key=>$value) の形式のコードは while(list($キー)=それぞれ($array))。

これらの手法によって生じる速度の違いは、小規模なプロジェクトでは明らかではないかもしれませんが、フレームワークのような大規模なプロジェクトでは、単一のリクエストに数百、数千、または数万の配列ループ操作が含まれることが多く、その差は大幅に拡大します。 。


2 次元配列、Yang Hui の三角形、パラメータの取得、長方形の対角線の合計など、PHP の配列とループの小さな例を紹介します。必要な方はぜひご覧ください




コードをコピーしてください
。コードは次のとおりです: //1。ループ ステートメントを使用して 2 次元配列を出力します。
$arr=array(
array(1,2,3,4),
array(5,6,7,8),
array(9,10,11,12),
array(13,14,15) ,16)
);
foreach ($arr as $var){
foreach ($var as $val1){
echo "$val1 ";
}
echo "
";
}
echo "< ;br>";
//2. ループ制御ステートメントを使用して、Yang Hui の三角形を出力します。
function yanghuisanjiao($line){
$sc[][]=array();
$sc[0][0]=1;
for($i=1;$i<=$line;$i++) {
for($j=0;$j<=$i;$j++){
if($j==0 または $i==$j){
$sc[$i][$j]=1 ; //各行の最初の番号と最後の番号を 1 に設定します
}else{
$sc[$i][$j]=$sc[$i-1][$j-1]+$ sc[$ i-1][$j];
}
}
}
foreach ($sc as $value){
foreach($value as $v1){
echo $v1.' ';
}
echo '< p>';
}
}
yanghuisanjiao(5);
echo "
";
//3. ループと事前定義変数を使用して複数のパラメーターを取得します。パラメータの数は未定です。
function avg(){
$ags=func_get_args();
$sum=0;
foreach ($ags as $v){
$sum+=$v;
}
return '平均は:'.$sum /func_num_args();
}
echo avg(1,2,3,4,5,6,7);

//4. ループを使用して 2 次元配列を出力し、長方形の対角要素の合計を求めます。
function getSum($theCount){
$b=0;

echo '

';

echo "

";
for($i=1;$i<=$theCount;$i++ ){
echo "";
for($j=1;$j<=$theCount;$j++){
if($j==$i || $theCount+1-$i== $j){
echo "";
$b=$b+$j;
if($j==$i && $theCount+ 1 -$i==$j){
$b=$b+$j;
/tr>";
}
echo "
$j
";
echo "対角要素の合計は次のとおりです。".$ b;
}
getSum(6);
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326468.html技術記事 PHP 配列は非常に一般的に使用されるため、PHP 配列のループ操作を研究し、ここで共有しました。皆さんのお役に立てれば幸いです。 PHP は基本的に配列言語です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。