PHPの配列トラバーサルの説明
この記事では、for、foreach、list、each、key、ポインタ操作関連関数、array_flip、array_reverse、array_walksなどの関数による配列の走査を中心に説明します
1.for ループは配列を走査します
For ループは、ほぼすべての言語で使用できる配列を走査する方法ですが、PHP 言語では、for ループは配列を走査するための最初の選択肢ではありません
以下はforループを使用した配列トラバーサルのサンプルコードです
/*
Androidyueによって設計されました
php*/での配列トラバーサルの説明
//配列を通る for ループ
//配列を宣言して初期化する
$array=array('Google','Chrome','Android','Youtube','Gmail');
//for ループを使用して各配列要素を走査し、count() を使用して配列の長さを計算します
for($i=0;$i //配列の要素の値を出力します echo $array[$i]," } ?> 注: for を使用して配列を走査する場合、次の制限があります。
";
for($i=1;$i エコー $arrGoogle[$i];
}
?>
このエラーと同様のエラーが実行時に報告されます。 注意: D:/phpnow/htdocs/holiday/php_array_visit_summary.php の 13 行目で、未定義のオフセット: 1 これは、 for が連想配列の走査に適していないことを示しています
b、for によって走査される配列はインデックス配列である必要があり、添字は連続整数でなければなりません。連続整数でない場合は、プロンプトが表示されます
。
以下のコードは以下の通りです$array=array(1=>'Google',5=>'Chrome',7=>'Android',9=>'Youtube',12=>'Gmail');
//print_r($array);
for($i=0;$i
";
}
?>
この場合、「 Notice: Unknown offset: 2 in D:/phpnow/htdocs/holiday/php_array_visit_summary.php の 10 行目」に似たプロンプトも表示されます。したがって、for ループで走査される配列はインデックス配列である必要があります。添え字は連続している必要があります。
2.foreachは配列を走査します
foreach は、配列を走査するために PHP 言語によって提供されるメソッドであると言えます (他の言語にもある可能性があります)。この走査メソッドは、PHP が配列を走査するための最初の選択肢です。
Foreach トラバーサルは次のようになります: foreach($array as $key=>$value) にはキー値要素が含まれることも、foreach($array as $value) には値のみが含まれることもあります
foreach($array as $value) サンプルコード
/*
Androidyueによって設計されました
php*/での配列トラバーサルの説明
//foreach は配列の走査を実装します
$arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');
//値のみが含まれます
foreach($arrGoogle as $value){
echo $value.'
';
}
?>
foreach($array as $key=>$value)のコード例
$arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');
foreach($arrGoogle as $key=>$value){
echo '',($key+1)' 番目の配列要素の値は ',$value,'
';
}
?>
上記の $value と $key はカスタム変数なので、必要に応じて独自のスタイルに合った名前付け方法に変更できることに注意してください
3. リスト関数を使用して配列を走査します
list() 関数は、配列内の値を変数に代入します
標準構文: void list (混合変数名、混合...)
リストを使用して配列トラバーサルコードを実装する
//リストトラバーサル機能を使用する
//$arrGoogle=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android');/ /連想配列の使用は機能しません
$arrGoogle=array('google','Gmail','Chrome','Android');
list($brand,$email,$webBrowser,$phone)=$arrGoogle;
エコー $brand,$email,$webBrowser,$phone;
?>
注:
a list 関数で受け入れられる配列はインデックス配列のみであり、連想配列は使用できません。連想配列の場合は、「未定義のオフセットに注意してください」のようなプロンプトが表示されます
b 配列の値を部分的にのみ取得する場合は、次のように記述します。 list(,,$chrome,)=$arrGoogle; このようにして、chrome 情報を削除できますが、リストがパラメータが配列と一致している 要素の数が同じ(値の前の数字)
c list関数の割り当てはインデックス順に値を割り当てます
4.各関数は配列を走査します
各関数は入力配列のキーと値のペアを返します
標準構文: array each(array input array)
戻り値: 4 つの値 0、1、キー、値を返します。0 とキーにはキー名が含まれ、1 と値には対応するデータが含まれます
それぞれを使用して配列を走査するサンプルコードは次のとおりです:
//各関数を使用して配列を走査します
$arrGoogle=array('google','Gmail','Chrome','Android');
//初めて each を使用して、現在のキーと値のペアを取得し、ポインターを次の位置に移動します
$arrG=each($arrGoogle);
//結果を印刷し、結果を明確に表示するために新しい行で囲みます
print_r($arrG);
「
」を印刷します;
$arrGmail=each($arrGoogle);
print_r($arrGmail);
「
」を印刷します;
$arrChrome=each($arrGoogle);
print_r($arrChrome);
「
」を印刷します;
$arrAndroid=each($arrGoogle);
print_r($arrAndroid);
「
」を印刷します;
//ポインタが配列の末尾にある場合、それぞれの関数を再度実行します。その場合、再度実行した結果は false を返します
。$empty=each($arrGoogle);
//ポインタが後方に移動し続けることができない場合は、false を返します
if($empty==false){
print 'ポインタは配列の最後にあり、後方に移動できないため、false を返します';
}
?>
注: この関数のパラメータと戻り値 (関数の実行前にポインタが配列の末尾にない場合) は両方とも配列です。関数の実行前に配列ポインタが配列の末尾にある場合は、戻り値が返されます。関数が再度実行されると、値は false になります
開始位置は最初の要素です。この関数が実行されるたびに (通常は)、ポインタは次のアドレスに戻ります。
5.key() は配列を走査しますそれぞれは配列を返すために使用されるキー名です
基本構文: 混合キー (配列 & 配列)
Key関数は次のように配列サンプルコードを走査します
//Androidyueによって設計されました
// key 関数を使用して配列を走査します
//連想配列を初期化します
$arrChina=array('a'=>'河北','b'=>'安徽','c'=>'北京','d'=>'広東','e'= >「上海」);
//インデックス配列を初期化しますが、キーを使用したインデックス配列は空の文字を返します
$arrCN=array('Hebei','Anhui','Beijing','Guangdong','Shanghai');//キーは配列の文字列添字を表示します。インデックス配列の場合は空の文字列です
//print_r($arrChina);
while($key=key($arrChina)){//連想配列の場合、key メソッドを使用できます
echo $key,'
';
次($arr中国);
}
print_r($arrCN);//インデックス配列を出力します
while($keyName=key($arrCN)){//ここで key 関数を呼び出して値を代入すると、while 条件が成立せず、{} 間の演算は実行されません
。
/*if(empty($keyName)){print 'キー名が空です
';
}*/
/*if($keyName=''){
print 'キー名が空です
';
}*/
var_dump($keyName);
}
//インデックス配列の key 関数の戻り値が変数の式のブール値に割り当てられていることを確認します
if(($KeyName=key($arrCN))==false){
「False」を出力します;
}
//インデックス配列で key 関数を呼び出し、変数に値を割り当てます
$keyName=key($arrCN);
next($arrCN);//配列ポインタを 1 つ後ろに移動します
次($arrCN);
次($arrCN);
次($arrCN);
次($arrCN);
$keyName=key($arrCN);
var_dump($keyName);//値と型情報を出力します
//エコー $keyName;
?>
注: key 関数のパラメーターは通常、インデックス配列の場合は意味がありません。
key 関数はポインタを移動しません。ここでは next 関数を呼び出します。next 関数はポインタを後方に移動するために使用されます。
6. ポインターを操作する関数を使用して配列を走査するリセット関数は、ポインターを配列の初期位置に戻すために使用されます。また、スクリプト内で配列を複数回表示および処理する必要がある場合、この関数はよく使用されます。仕分け終了
b.current() 関数
この関数は現在の配列ポインターの位置の値を返します。この機能には注意してください。
c end はポインタを配列の最後の位置に移動し、ターゲット位置の値を返します
d 次に、ポインタを 1 回後方に移動し、現在の位置が配列の最後の位置である場合、false を返します。
e prev はポインタを 1 回前に移動し、現在の位置が配列の開始位置の場合は false を返します。
//Androidyueによって設計されました
//reset メソッドの使用法 次のコードは、ポインターを制御する関数を呼び出します。ポインターを移動する操作は、各関数の結果に影響を与えることに注意してください。
//コードを簡略化するために、単純な配列を宣言します$arrGoogle=array('google','Gmail');
//各関数を呼び出すと、出力は配列改行を返します
echo(current($arrGoogle));//current 関数を使用して現在の値を出力します
echo (next($arrGoogle));//next 関数を呼び出し、次の値を出力します
$arrG=each($arrGoogle);
print_r($arrG);
「
」を印刷します;
$arrGmail=each($arrGoogle);
print_r($arrGmail);
「
」を印刷します;
$arrMore=each($arrGoogle);//ポインタが動き続けられない場合は false を返します
//print_r($arrMore);
//エコー $arrMore;
「
」を印刷します;
//ただし、出力を継続して上記のプロセスを繰り返す場合は、リセット関数を使用してポインタを開始位置にリセットし、上記の操作を繰り返します
リセット($arrGoogle);
echo(end($arrGoogle));//end 関数を呼び出してポインタを配列の最後の位置に移動し、値を返します
echo(prev($arrGoogle));// prev 関数を呼び出してポインタを前方に移動し、値を返します
$arrG=each($arrGoogle);
print_r($arrG);
「
」を印刷します;
$arrGmail=each($arrGoogle);
print_r($arrGmail);
「
」を印刷します;
?>
7.array_reverse()
この関数は、ターゲット配列の要素を反転します。preserver_key が true に設定されている場合、元のマッピングが維持されます。それ以外の場合、マッピングはリセットされます。
この機能を使用するサンプルコードは以下の通りです
$arrGoogle=array('Google','Gmail','Android','Chrome','Youtube');
エコー '
'; <p>「操作前の配列」を出力します;</p> <p>print_r($arrGoogle);</p> <p>$arrReversed=array_reverse($arrGoogle);//以前のマッピングを保持しません</p> <p>print 'preserving_key を使用しない逆順操作の結果';</p> <p>print_r($arrReversed);</p> <p>$arrReversedT=array_reverse($arrGoogle,1);//前のマッピングを保持します</p> <p>print '逆順操作のためにpreserver_keyをオンにした結果';</p> <p>print_r($arrReversedT);</p> <p>エコー'</p>';
?>
8.array_flip()
この関数は配列のキーと値を交換します
以下はこの関数の使用コードです
//array_flip()関数の使い方
//インデックス配列を初期化します
$arrGoogle=array('Google','Chrome');
//連想配列を初期化します
$arrSohu=array('son'=>'Sogou','child'=>'Chinaren','search'=>'Sogou');//値が同じ場合、 array_flip() 関数は次のようになります。 array_flip() を使用した後、'son'=>'Sogou' と 'search'=>'Sogou' が同じ値になるように、同じ値を順番に上書きします。関数、それは【総合】検索です
//2つの配列に対してarray_flip()関数を呼び出して演算、出力するとどちらも正常に出力できます
print_r(array_flip($arrGoogle));
print '
$arrSogou は array_flip() 関数の操作前の配列です';
print_r($arrSohu);
print '
$arrSogou の array_flip() 関数操作なしの配列';
print_r(array_flip($arrSohu));
?>
9.array_walk関数
boolean array_walk(array input_array,コールバック関数[,混合ユーザーデータ])
array_walk() 関数は、パラメーター array_input の各要素をカスタム関数関数に渡して、array_input のキーと値のペアを実際に変更する場合は、各キーと値のペアを参照として渡す必要があります。機能
カスタム関数は 2 つの入力パラメータを受け入れる必要があります。1 つ目は配列の現在の値、2 つ目は配列の現在のキーです。array_walk 関数が 3 番目の値 userdata を与えるために呼び出された場合、その 3 番目の値は 3 番目になります。パラメータはカスタム関数に渡されます。
//Androidyueによって設計されました
//array_walk関数の使い方
//配列を初期化する
$arrCorperate=array('チャイナモバイル','チャイナユニコム','テレコム');
/*
関数: 配列内の値とユーザーが入力したパラメーターを連結して、文字列を結合する関数 (パラメーターが入力されていない場合は、デフォルトのパラメーター値が結合されます)
パラメータ: $value (カスタム)、配列に値を保存、$key 配列にキーを保存、$prefix はオプションのパラメータです。ユーザーは array_walk の 3 番目のパラメータを設定して値を割り当てる必要があります。 ()、ユーザーが値を割り当てない場合は、デフォルトを使用するか、必要に応じて選択します
注: ユーザーが値渡しによる参照を使用すると、配列の値が変更されます
*/
関数 linkString(&$value,$key,$prefix='cn'){
$value=$prefix.$value;//関数本体は文字列のスプライシングを実装します
}
array_walk($arrCorperate,'linkString');// array_walk() を使用して、カスタム関数に従って配列を操作します
//array_walk($arrCorperate,'linkString','China');//ここはカスタム関数のパラメーターを設定する 3 番目の場所です
print_r($arrCorperate)
?>
のfor、foreach、list、each、key、ポインタ操作関連関数、array_flip、array_reverse、array_walksなどの関数を中心に解説しています。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
