この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 2908|答える: 0

初心者の投稿、PHPが配列をトラバースする6つの方法をまとめています

[リンクをコピー]
掲載地 2022/06/08 15:56:10 | | |


PHPの日常的な運用では、配列が最も一般的な構造であり、私たちはほぼ毎日配列関連のコンテンツを扱っています。 では、一般的に配列をどのようにトラバースし処理するのかが問題です。


1、foreach
見覚えがある、君のお気に入りじゃない?
$arr = ['a', 'b', 'c'];
foreach($arr $key => $value) {
    $arr[$key] = $value。 「_i」;
}
print_r($arr); [「a_i」「b_i」「c_i」];


2、array_map
配列内の各要素を管理するために匿名関数を使用します。 トラバーサルが完了すると新しい配列が返されます
$arr = ['a', 'b', 'c'];
$arr = array_map(function ($item) {
    返$item。 「_i」;
}、$arr);
print_r($arr); [「a_i」「b_i」「c_i」];
複数のアレイを同時に扱うことも可能です
$arr_1 = ['a', 'b', 'c'];
$arr_2 = [「あなた」「善」「is」「original」「sin'];
$arr_n = [...];
$arr = array_map(function ($item_1, $item_2) {
    返$item_1。 '_' . $item_2。 「_i」;
}, $arr_1, $arr_2);
print_r($arr); [『a_ you _i』『b_ is good_i』『Are You c__i』『_original _i』『_sin_i』]
はい、通過回数は最も長い配列に基づいています。
3回のトラバース後、$arr_1は実際に完了するため、その後$item_1の値はnullとなります


3、array_walk
配列を参照パスとして走査すると返り値はなく、1つの配列しか処理できません。
$arr = ['a', 'b', 'c'];
array_walk($arr, function (&$item) {
    $item = $item。 「_i」;
});


print_r($arr); [「a_i」「b_i」「c_i」];
注意してください & $item、はい、余分な & があり、これはパラメータが参照データを受け取っていることを意味します。 あとはこのパラメータを変える方法を見つけるだけです。


二次元配列を扱う場合、処理方法は切り離せません。
$arr = [
    ['name' => 'a'],
    ['name' => 'b'],
    ['name' => 'c']
];
array_walk($arr, function (&$item) {
    $item['name'] = $item['name'] 「_i」;
});
print_r($arr); [['name' => 'a_i'], ['name' => 'b_i'], ['name' => 'c_i']];


4、に対して
これは非常に一般的な構文であるべきです
$arr = ['a', 'b', 'c'];
($i = 0) の場合; カウント$i <($arr); ++$i) {
    $arr[$i] = $arr[$i] 。 「_i」;
}
print_r($arr); [「a_i」「b_i」「c_i」];
おすすめしません。 Foreachほど効率的ではありません。 そして、書き方は教えるよりも少し面倒です。


5、各
はは、この機能はPHP7.2@deprecatedで廃止されていて、特に古臭く感じます。 この書き方の実行効率も良くなく、初心者はすぐに諦めるべきです。
$arr = ['a', 'b', 'c'];
一方(list($key, $value) = each($arr)) {
    $arr[$key] = $value。 「_i」;
}
print_r($arr); [「a_i」「b_i」「c_i」];


6、リセット
正確に言えば、リセットする関数ではなく、複数の組み込み関数の組み合わせであり、基本的にコード作成には使われていません
$arr = ['a', 'b', 'c'];
reset() ポインタをヘッドに示します。実際にはデフォルトは始まりを指すので、この文は無視しても構いません
reset($arr);
current() で現在のポインタの要素値を得る
一方($value = current($arr)) {
    key() を使えば、現在のポインタの要素添字が得られます
    $arr[key($arr)] = $value 。 「_i」;
    Next() ポインタを次のポインタに
    next($arr);
}
print_r($arr); [「a_i」「b_i」「c_i」];





先の:[実戦戦闘] ASP.NET コアをイメージNUGTタイムアウトにパッケージ化する
次に:Kindeditorエディターの一括アップロード画像拡張機能(Flash依存なし)
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com