目次
PHP配列のまとめを学ぶ【体験】、PHP配列のまとめ
ホームページ バックエンド開発 PHPチュートリアル PHP学習における配列まとめ【体験編】、PHP配列まとめ_PHPチュートリアル

PHP学習における配列まとめ【体験編】、PHP配列まとめ_PHPチュートリアル

Jul 12, 2016 am 08:53 AM
php 配列

PHP配列のまとめを学ぶ【体験】、PHP配列のまとめ

PHPには配列操作を容易にするために配列に関する関数がたくさんあります。

定義:

配列内の各エンティティには、キーと値の 2 つの項目が含まれており、対応する値はキーをクエリすることで取得できます。これらのキーは、数値キーまたは連想キーにすることができます。数値キーは値と実際の関係はなく、配列内の値の位置にすぎません。

PHP には、関連付けられたキーを使用するか数値キーを使用するかに関係なく、配列を走査するためのメソッドが多数用意されており、それらはすべて配列ポインターと呼ばれる機能に依存しています。

配列を作成する

PHP は作成時に配列のサイズを指定する必要がありません。PHP は緩やかな言語であるため、使用前に配列を宣言する必要がありません。制限はありませんが、PHP には配列宣言の正式および非公式の方法が用意されています。

角括弧のペアで示された PHP 配列の各要素を参照します。配列にはサイズ制限がないため、たとえば次のように参照を確立するだけで配列を作成できます。 リーリー

インデックス値が数値インデックスで増加する場合は、作成時にインデックス値を省略することもできます。

リーリー

array() を使用して、次のような配列を作成できます:

リーリー

list() を使用して配列を抽出します。例:

リーリー

配列内の3つの値はそれぞれ$one、$two、$threeに割り当てられており、直接出力することができます。

事前に定義された値の範囲を配列に入力します。例:

リーリー

リーリー

出力配列

配列の内容を出力する最も一般的な方法は、各配列キーを反復処理して、対応する値を出力することです。

foreach() 関数は、配列を簡単に走査して各値とキーを取得できます。

print_r() 関数は、配列の内容を画面に出力するのに非常に便利です。 prinf_r() 関数は変数を受け入れ、その内容を標準出力に送信し、成功すると TRUE を返し、それ以外の場合は FALSE を返します。

テスト配列

is_array() 関数を通じて、特定の変数が配列であるかどうかを確認します。

is_array() 関数は、変数が配列であるかどうかを判断し、配列である場合は TRUE を返し、そうでない場合は FALSE を返します。配列に値が 1 つだけ含まれている場合でも、配列とみなされます。

配列要素の追加と削除

PHP は、さまざまなキューの実装を模倣するのに便利な、配列を拡張および縮小するための関数をいくつか提供します。

配列の先頭に要素を追加します:

array_unshift() 関数は配列の先頭に要素を追加します。既存のすべての数値キーは、配列内の新しい位置を反映するように変更されますが、関連するキーは影響を受けません。

リーリー

配列の末尾に要素を追加します:

array_push() 関数は、配列の末尾に値を追加し、新しい値を追加した後の配列内の要素の合計数を返します。同時に、この変数を入力パラメーターとしてこの関数に渡すことにより、複数の変数 (要素) が次の形式で配列にプッシュされます:

リーリー

配列の先頭から要素を削除します:

array_shift() 関数は、配列内で見つかった最初の要素を削除して返します。その結果、数値キーが使用されている場合、対応する値はすべて下にシフトされますが、連想キーを使用する配列は影響を受けません。次の形式になります。 リーリー

配列の末尾から要素を削除します:

array_pop() 関数は配列の最後の要素を削除して返します。その形式は次のとおりです:

リーリー

配列要素の配置

検索配列: in_array() 関数は、配列内の特定の値を検索し、値が見つかった場合は TRUE を返し、それ以外の場合は FALSE を返します。その形式は次のとおりです。 リーリー

3 番目のパラメーター strict はオプションであり、検索時に in_array() に型を強制的に考慮させます。

検索連想配列:

指定されたキーが配列内で見つかった場合、関数 array_key_exists() は TRUE を返し、それ以外の場合は FALSE を返します。その形式は次のとおりです:

リーリー

検索連想配列:

array_search() 関数は、配列内の指定された値を検索し、見つかった場合は対応する値を返し、それ以外の場合は FALSE を返します。 リーリー

配列キーを取得:

array_key() 関数は、検索された配列内で見つかったすべてのキーを含む配列を次の形式で返します。 リーリー

配列値を取得:

array_values() 関数は、配列内のすべての値を返し、返された配列に次の形式の配列インデックスを自動的に提供します。 リーリー

配列を走査

通常、配列を走査して各キーまたは値を取得する (またはキーと値の両方を取得する) 必要があります。PHP はニーズを満たすためにいくつかの関数を提供します。多くの関数は、現在のポインター位置にあるキーまたは値を取得するだけでなく、ポインターを次の適切な位置に移動するという 2 つのタスクを実行します。 現在の配列キーを取得します: key() 関数は、配列内の現在のポインター位置にあるキーを返します。その形式は次のとおりです。 リーリー

注: key() が呼び出されるたびにポインタは移動しません。

获取当前数组值:

current()函数返回数组中当前指针所在位置的数组值。其形式如下:

$arr= array('one'=>'1', 'two'=>'2', 'three'=>'3');

$value= current($arr);

var_dump($value);

//string(1)“1”
ログイン後にコピー

获取当前数组键和值:

each()函数返回数组的当前键/值对,并将指针推进一个位置,其形式如下:

$arr =array('one'=>'1', 'two'=>'2', 'three'=>'3');

var_dump(each($arr));

//array(4) {[1]=> string(1) "1" ["value"]=> string(1)"1" [0]=> string(3) "one" ["key"]=>string(3) "one" }
ログイン後にコピー

返回的数组包含4个键,键0和key键包含键名,而键1和value包含相应的数据。如果执行each()前指针位于数组末尾,则返回FALSE。

移动数组指针:

1) 将指针移动到下一个数组位置

next()函数返回紧接着放在当前数组指针下一个位置的数组值,如果指针本来就位于数组的最后一个位置,则返回FALSE

$arr= array('one'=>'1', 'two'=>'2', 'three'=>'3');

echo next($arr); //输出2

echo next($arr); //输出3
ログイン後にコピー

2) 将指针移动到前一个数组位置

prev()函数返回位于当前指针前一个位置的数组值,如果指针本来就位于数组的第一个位置,则返回FALSE

3) 将指针移动到第一个数组位置

reset()函数用于将数组指针设置回数组的开始位置,如果需要在脚本中多次查看或处理一个数组,经常使用这个函数,另外这个函数还经常在排序结束时使用。

4) 将指针移动到最后一个数组位置

end()函数将指针移动到数组的最后一个位置,并返回最后一个元素。

向函数传递数组值:

array_walk()函数将数组中的各个元素传递到用户自定义函数。如果需要对各个数组元素完成某个特定动作,这个函数将起作用。其形式如下:

functiontest($value ,$key){

echo$value.' '.$key."
";

}

$arr= array('one'=>'1', 'two'=>'2', 'three'=>'3');

array_walk($arr,'test');

//1 one

//2 two

//3 three
ログイン後にコピー

如果使用多维数组,PHP5中引入的array_walk_recursive()函数可以递归地对数组中的每一个元素应用一个用户定义函数。

确定数组大小和元素唯一性

确定数组的大小:

count()函数返回数组中值的总数

如果启动了可选的mode参数(设置为1),数组将进行递归计数统计元素。count(array(), 1);

注意:sizeof()函数是count()的别名。功能一致。

统计数组元素出现的频率:

array_count_values()函数返回一个包含关联键/值对的数组,其形式如下:

$arr= array('A', 'B', 'C', 'A');

$res= array_count_values($arr);

print_r($res);

//Array( [A] => 2 [B] => 1 [C] => 1 )
ログイン後にコピー

值表示出现的频率。

确定唯一的数组元素:

array_unique()函数会删除数组中所有重复的值,返回一个由唯一值组成的数组,其形式如下:

$arr= array('A', 'B', 'C', 'A');

$res= array_unique($arr);

print_r($res);

//Array( [0] => A [1] => B [2] => C )
ログイン後にコピー

可选参数sort_flags(PHP5.2.9中新增)可以确定如何对数组键排序。默认地,值会被作为字符串排序,不过也可以按数值对值排序(SORT_NUMERIC),或使用PHP默认的排序方法(SORT_REGULAR),还可以根据本地化环境排序(SORT_LOCALE_STRING)。

数组排序

逆置数组元素排序:

array_reverse()函数将数组中元素的顺序逆置,其形式如下:

$arr= array('A', 'B', 'C');

$res= array_reverse($arr);

print_r($res);

//Array( [0] => C [1] => B [2] => A )
ログイン後にコピー

如果可选参数preserve_keys设置为TRUE,则保持键映射,否则重新摆放后的各个值将对应于先前该位置上的相应键。

$arr= array('A', 'B', 'C');

$res= array_reverse($arr, true);

print_r($res);

//Array( [2] => C [1] => B [0] => A )
ログイン後にコピー

置换数组键和值:

array_flip()函数将置换数组中键及其相应值的角色,其形式如下:

$arr= array('A', 'B', 'C');

$res= array_flip($arr);

print_r($res);

//Array( [A] => 0 [B] => 1 [C] => 2 )
ログイン後にコピー

数组排序:

sort()函数对数组进行排序,各元素按值由低到高的顺序排列,其形式如下:

sort()函数不返回排序后的数组,相反它只是“就地”对数组排序,不论结果如何都不返回任何值。sort_flags参数可选,将根据这个参数指定的值修改该函数的默认行为。

1) SORT_NUMERIC,按数值排序。对整数和浮点数排序很有用。

2) SORT_REGULAR,按照相应的ASCII值对元素排序。

3) SORT_STRING,按接近于人所认知的正确顺序对元素排序。

要保持初始键/值对应条件下的数组排序需要用到asort()函数。

assort()函数与sort()函数相同,以升序对数组排序,只不过它将保持键/值的关联,其形式如下:

$arr= array('C', 'B', 'A');

$res= $arr;

print_r($arr);

sort($arr);

print_r($arr);

asort($res);

print_r($res);

//Array ( [0]=> C [1] => B [2] => A ) Array ( [0] => A [1] => B [2] => C )Array ( [2] => A [1] => B [0] => C )
ログイン後にコピー

以逆序对数组排序

rsort()函数与sort()函数相同,只不过它以相反的顺序(降序)对数组元素排序。

如果使用可选的sort_flags参数,具体的排序行为将由这个值确定。

保持键/值对的条件下以逆序对数组排序

与asort()一样,arsort()函数会保持键/值的关联,但是它以逆序对数组up

$arr= array('C', 'B', 'A', 'D');

arsort($arr);

print_r($arr);

//Array( [3] => D [0] => C [1] => B [2] => A )
ログイン後にコピー

如果使用可选的sort_flags参数,具体的排序行为将由这个值确定。

数组自然排序

natsort()函数提供了一种相当于人们平常使用的排序机制。

典型算法排序如下:

p1.jpg,p10.jpg, p2.jpg, p20.jpg

使用natsort()函数如下:

p1.jpg,p2.jpg, p10.jpg, p20.jpg

不区分大小写的自然排序

如:

Picture1.jpg,PICTURE10.jpg, picture2.jpg, picture20.jpg

按键值对数组排序

ksort()函数按键对数组排序,如果成功则返回TRUE,失败将返回FALSE

以逆序对数组键排序

krsort()函数的操作与ksort()相同,也按键排序,将以逆序排序。

根据用户自定义规则排序

usort()函数提供了另一种排序方法,可以使用在该函数中指定的用户自定义比较算法对数组排序。如果需要以某种方法对数据排序,而PHP的任何内置排序函数没有提供相应支持,就需要该函数。

数组合并、拆分、接合和分解

合并数组

array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次追加。其形式如下:

$arr= array('C', 'B', 'A', 'D');

$arr1= array('1', '2', '3', '4');

$arr2= array_merge($arr, $arr1);

print_r($arr2);

//Array( [0] => C [1] => B [2] => A [3] => D [4] => 1 [5] => 2 [6]=> 3 [7] => 4 )
ログイン後にコピー

递归追加数组

array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并到一起,形成一个联合的数组。两者之间的区别在于,当某个输入数组中的某个键已经存在于结果数组中时该函数会采取不同的处理方法。array_merge()会覆盖前面存在的键/值对,将其替换为当前输入数组中的键/值对,而array_merge_recursive()将两个值合并在一起,形成一个新的数组并以原有的键作为数组名。其形式为:

$arr= array('one'=>'C', 'one'=>'B');

$arr1= array('three'=>'1', 'one'=>'2');

$arr2= array_merge_recursive($arr, $arr1);

print_r($arr2);

//Array( [one] => Array ( [0] => B [1] => 2 ) [three] => 1 )
ログイン後にコピー

合并两个数组

array_combine()函数会生成一个新数组,这个数组由一组提交的键和对应的值组成,其形式为:

$arr= array('A', 'B');

$arr1= array('1', '2');

$arr2= array_combine($arr, $arr1);

print_r($arr2);

//Array( [A] => 1 [B] => 2 )
ログイン後にコピー

拆分数组

array_slice()函数将返回数组中的一部分,从键offset开始,到offset+length位置结束。

offset为正值时,拆分将从距数组开头的offset位置开始;如果offset为负值,则拆分从距数组末尾的offset位置开始。如果省略了可选参数length,则拆分将从offset开始,一直到数组的最后一个元素。如果给出了length且为正数,则会在距数组开头的offset+length位置结束。相反,如果给出了length且为负数,则在距数组开头的count(array) - |length|位置结束。其形式如下:

$arr= array('A', 'B', 'C', 'D');

$arr1= array_slice($arr, 2, 1);

print_r($arr1);

//Array( [0] => C )
ログイン後にコピー

求数组的交集

array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下:

$arr= array('A', 'B', 'C', 'D');

$arr1= array('A', 'B', 'E');

$arr2= array('A', 'F', 'D');

$arr3= array_intersect($arr, $arr1, $arr2);

print_r($arr3);

//Array( [0] => A )
ログイン後にコピー

注意:只有在两个元素有相同的数据类型时,array_intersect()才会认为它们相等。

求关联数组的交集

array_intersect_assoc()与array_intersect()基本相同,只不过它在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才被返回到结果数组中。其形式如下:

$arr= array('a'=>'A', 'b'=>'B', 'c'=>'C', 'd'=>'D');

$arr1= array('a'=>'A', 'c'=>'B', 'E');

$arr2= array('a'=>'A', 'b'=>'F', 'd'=>'B');

$arr3= array_intersect_assoc($arr, $arr1, $arr2);

print_r($arr3);

//Array( [a] => A )
ログイン後にコピー

求关联数组的差集

函数array_diff_assoc()与array_diff()基本相同,只是它在比较时还考虑了数组的键,因此,只在第一个数组中出现而不在其他输入数组中出现的键/值对才会被返回到结果数组中。其形式如下:

$arr= array('a'=>'A', 'b'=>'B', 'c'=>'C', 'd'=>'D');

$arr1= array('a'=>'A', 'b'=>'B', 'e'=>'E');

$arr3= array_diff_assoc($arr, $arr1);

print_r($arr3);

//Array( [c] => C [d] => D )
ログイン後にコピー

其他有用的数组函数

返回一组随机的键

array_rand()函数将返回数组中的一个或多个键。其形式为:

$arr= array('a'=>'A', 'b'=>'B', 'c'=>'C', 'd'=>'D');

$arr1= array_rand($arr, 2);

print_r($arr1);

//Array( [0] => b [1] => d )
ログイン後にコピー

随机洗牌数组元素

shuffle()函数随机地对数组元素重新排序。

对数组中的值求和

array_sum()函数将数组内的所有值加在一起,返回最终的和,其形式如下:

$arr= array('A', 32, 12, 'B');

$count= array_sum($arr);

print_r($count);

//44
ログイン後にコピー

如果数组中包含其他数据类型(例如字符串),这些值将被忽略。

划分数组

array_chunk()函数将数组分解为一个多维数组,这个多维数组由多个包含size个元素的数组所组成。其形式如下:

$arr= array('A', 'B', 'C', 'D');

$arr1= array_chunk($arr, 2);

print_r($arr1);

//Array( [0] => Array ( [0] => A [1] => B ) [1] => Array ( [0] => C [1]=> D ) )
ログイン後にコピー

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1123803.htmlTechArticle学习PHP的数组总结【经验】,php数组总结 PHP有很多关于数组的函数,方便数组操作。 定义: 数组每个实体包含两个项:key和value,可以通...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles