この記事では、PHP の配列の問題について紹介します。また、困っている友達の参考にもなります
概要 言語では配列が非常に頻繁に使用され、ほぼすべてのスクリプトで使用されます。 PHP には、配列を操作するための優れた関数が多数付属しています。この記事では、将来の便宜のために、これらの配列関数の使用法を分類してまとめます。 作成1.range()
range()
建立一个指定范围的数组:
$arr1 = range(0, 10); # array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)$arr2 = range(0, 10, 2); # array(0, 2, 4, 6, 8, 10)$arr3 = range('a', 'd'); # array('a', 'b', 'c', 'd')$arr4 = range('d', 'a'); # array('d', 'c', 'b', 'a')
2. compact()
创建一个包含变量名和它们值的数组:
$number = 10; $string = "I'm PHPer"; $array = array("And", "You?"); $result = compact("number", "string", "array"); # array('number'=>10, 'string'=>"I'm PHPer", 'array'=>array("And", "You?"))
3. array_combine()
创建一个用一个数组的值作为其键、另一个数组的值作为其值的数组:
$key = array("1", "3", "5", "7", "9"); $value = array("I", "Am", "A", "PHP", "er"); $result = array_combine($number,$array); # array('1'=>I, '3'=>'Am', '5'=>'A', '7'=>'PHP', '9'=>'er')
遍历
1. for
循环
$arr = range(0, 10);for($i = 0; $i <blockquote>缺点:只能遍历索引数组。</blockquote><h5 id="code-while-code-循环">2. <code>while</code> 循环</h5><pre class="brush:php;toolbar:false">$products = array('apple'=>3, 'milk'=>6, 'eggs'=>10);while(list($product, $quantity) = each($products)) { echo $product . '-' . $quantiry; }
缺点:遍历完成之后,不能对数组进行第二次遍历(数组内部指针指向了最后一个元素)。
3. foreach
循环
$products = array('apple'=>3, 'milk'=>6, 'eggs'=>10);foreach($products as $product => $quantity) { echo $product . '-' . $quantiry; }
操作 key 或 value
unset()
— 删除数组成员或数组in_array()
— 检查数组中是否存在某个值array_key_exists()
— 检查给定的键名或索引是否存在于数组中array_search()
— 在数组中搜索给定的值,如果成功则返回相应的键名
$array = array(1, 2, 3);unset($array); # array()$fruit = array('apple' => 'goold','orange' => 'fine','banana' => 'OK');if(in_array('good', $fruit)) { echo 'Exit'; } $search_array = array('first' => 1, 'second' => 4);if (array_key_exists('first', $search_array)) { echo "Exit"; } $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); $key = array_search('green', $array); # $key = 2;
array_keys()
— 返回数组中部分的或所有的键名array_values()
— 返回数组中所有的值
$array = array('apple'=>'good', 'orange'=>'fine', 'banana'=>'ok'); $keys = array_keys($array); # array('apple', 'orange', 'banana')$values = array_values($array); # array('good', 'fine', 'ok')
array_unique()
— 移除数组中重复的值
$input = array(4, '4', '3', 4, 3, '3'); $result = array_unique($input); # array(4, '3')
array_flip()
— 交换数组中的键和值
$input = array('oranges', 'apples', 'pears'); $result = array_flip($input); # array('oranges'=>0, 'apples'=>1, 'pears'=>2)
array_count_values()
统计数组中所有的值
$input = array(1, 'hello', 1, 'world', 'hello'); $result = array_count_values($input); # array('1'=>2, 'hello'=>2, 'world'=>1)
排序
1. sort()
和 rsort()
对数组进行升序或降序排序:
$fruits = array(); sort($fruits); # array('apple', 'banana', 'lemon', 'orange')rsort($fruits); # array('orange', 'lemon', 'banana', 'apple')
2. asort()
和 arsort()
对关联数组(按元素的值)进行升序或降序排序并保持索引关系:
$fruits = array('d'=>'lemon', 'a'=>'orange', 'b'=>'banana', 'c'=>'apple'); asort($fruits); # array('c'=>''apple', 'b'=>''banana', 'd'=>'lemon', 'a'=>'orange')arsort($fruits); # array('a'=>'orange', 'd'=>'lemon', 'b'=>''banana', 'c'=>''apple')
3. ksort()
对数组按照键名排序:
$fruits = array('d'=>'lemon', 'a'=>'orange', 'b'=>'banana', 'c'=>'apple'); ksort($fruits); # array('a'=>'orange', 'b'=>'banana', 'c'=>'apple', 'd'=>'lemon')
4. shuffle()
随机打乱数组排序:
$numbers = range(1, 5); shuffle($numbers); # array(3, 2, 5, 1, 4)
栈与列队
array_push()
— 将一个或多个单元压入数组的末尾(入栈)array_pop()
— 将数组最后一个单元弹出(出栈)
$stack = array('orange', 'banana'); array_push($stack, 'apple", 'raspberry'); # array('orange', 'banana', 'apple', 'raspberry') $fruit = array_pop($stack); #array('orange', 'banana', 'apple')
array_unshift()
— 在数组开头插入一个或多个单元array_shift()
— 将数组开头的单元移出数组
$queue = array('orange', 'banana'); array_unshift($queue, 'apple", 'raspberry'); # array('apple', 'raspberry', 'orange', 'banana') $fruit = array_shift($queue); # array('raspberry', 'orange', 'banana')
分割、填充、合并
array_slic()
— 从数组中取出一段array_splice()
— 把数组中的一部分去掉并用其它值取代
$input = array('a', 'b', 'c', 'd', 'e'); $result = array_slice($input, 2); # array('c', 'd', 'e')$input = array('red', 'green', 'blue', 'yellow'); array_splice($input, 2, 1); # array('red', 'green', 'yellow')
array_pad()
— 以指定长度将一个值填充进数组
$input = array(12, 10, 9); $result = array_pad($input, 5, 0); # array(12, 10, 9, 0, 0)$result = array_pad($input, -7, -1); # array(-1, -1, -1, -1, 12, 10, 9)
array_fill()
— 用给定的值填充数组
$a = array_fill(5, 3, 'a'); # array(5=>'a', 6=>'a', 7=>'a')$b = array_fill(-2, 3, 'pear'); # array(-2=>'a', 0=>'a', 1=>'a')
array_fill_keys()
— 使用指定的键和值填充数组
$keys = array('foo', 5, 10, 'bar'); $result = array_fill_keys($keys, 'a'); # array('foo'=>'a', 5=>'a', 10=>'a', 'bar'=>'a')
array_merge()
— 合并一个或多个数组
$array1 = array('data0'); $array2 = array('data1'); $result = array_merge($array1, $array2); # array('data0', 'data1')
其他函数
1. array_walk()
使用用户自定义函数对数组中的每个元素做回调处理(改变原来数组):
$a = array(1, 2, 3, 4, 5); array_walk($a, function(&$value, $key) { ++$value; }); # array(2, 3, 4, 5, 6)
2. array_map()
将回调函数作用到给定数组的单元上(不改变原来数组,同时生成新的数组作为结果):
$a = array(1, 2, 3, 4, 5); $b = array_map(function($item) { return $item + 1; }, $a); # array(2, 3, 4, 5, 6)
3. array_rand()
从数组中随机取出一个或多个元素:
$input = array('apple', 'banana', 'lemon', 'orange'); $result = array_rand($input, 2); # array('banana', 'lemon')
4. array_diff()
指定した範囲の配列を作成します:
$array1 = array('a' => 'green', 'red', 'blue', 'red'); $array2 = array('b' => 'green', 'yellow', 'red'); $result = array_diff($array1, $array2); # array('blue')
2. compact()
変数名を含む配列を作成しますとその値 配列:
rrreee3. array_combine()
1 つの配列の値をキーとして、別の配列の値をその値として持つ配列を作成します:
欠点: インデックス配列のみを走査できます。
2. while
ループ
欠点: 走査が完了すると、配列を再度走査することはできません (配列の内部ポインタは最後の要素を指します)。 。🎜3.
foreach
ループ🎜rrreee🎜 キーまたは値を操作します🎜🎜unset()
— 配列メンバーまたは配列を削除しますin_array( )
— 値が配列内に存在するかどうかを確認しますarray_key_exists()
— 指定されたキーまたはインデックスが配列内に存在するかどうかを確認しますarray_search ()
— 配列内の指定された値を検索し、成功した場合は対応するキー名を返します🎜rrreee🎜array_keys()
— 配列内のキー名の一部またはすべてを返しますarray_values()
— 配列内のすべての値を返します🎜rrreee🎜array_unique()
— 配列内の重複した値を削除します🎜rrreee🎜array_flip( )
— 配列内のキーと値を交換します🎜rrreee🎜array_count_values()
配列内のすべての値をカウントします🎜rrreee🎜Sort🎜🎜1。 () と rsort()🎜🎜 配列を昇順または降順に並べ替えます: 🎜rrreee🎜2. asort()
と arsort()
🎜🎜 連想配列を並べ替えます (要素値ごとに) 昇順または降順に並べ替え、インデックス関係を維持します: 🎜rrreee🎜3. ksort()
🎜🎜 配列をキー名で並べ替えます: 🎜rrreee🎜4. shuffle()
🎜🎜配列をランダムにシャッフルして並べ替えます: 🎜rrreee🎜スタックしてキュー🎜🎜array_push()
— 1 つ以上のセルを最後にプッシュします配列の (プッシュ)array_pop()
— 配列の最後のセルをポップします 🎜rrreee🎜array_unshift()
— 先頭に 1 つ以上のセルを挿入します配列のarray_shift() — 配列の先頭のセルを配列から移動します🎜rrreee🎜分割、塗りつぶし、結合🎜🎜
array_slic()
— 配列からセグメントを削除します array_splice()
— 配列の一部を削除し、別の値に置き換えます 🎜rrreee🎜array_pad()
— 配列を埋めます指定された長さの値を配列に入れる 🎜rrreee🎜array_fill()
— 配列に指定された値を入れる 🎜rrreee🎜array_fill_keys()
— 配列に値を入れる指定されたキーと値🎜rrreee🎜array_merge()
— 1 つまたは複数の配列を結合します🎜rrreee🎜その他の関数🎜🎜1. array_walk()
🎜🎜ユーザー定義を使用します配列内の各要素に対してコールバック処理を実行する関数 (元の配列を変更): 🎜rrreee🎜2 . array_map()
🎜🎜 指定された配列 (元の配列) のセルにコールバック関数を適用します。は変更されず、結果として新しい配列が生成されます): 🎜rrreee🎜3. array_rand()
🎜🎜配列から 1 つ以上の要素をランダムに取り出します: 🎜rrreee🎜4. >array_diff()🎜🎜配列値の差を計算する: 🎜rrreee🎜 関連する推奨事項: 🎜🎜🎜 PHP 配列の簡単な配置🎜🎜🎜🎜 PHP 配列関数の詳細な説明🎜🎜🎜 🎜以上がPHP&&& 配列 - CSDN ブログの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

HTTPキャッシュヘッダーの主要なプレーヤーには、キャッシュコントロール、ETAG、およびラスト修飾が含まれます。 1.Cache-Controlは、キャッシュポリシーを制御するために使用されます。例:キャッシュコントロール:Max-Age = 3600、public。 2。ETAGは、一意の識別子を介してリソースの変更を検証します。例:ETAG: "686897696A7C876B7E"。 3. Last-Modifiedは、リソースの最後の変更時間を示しています。

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
