PHP配列演算関数学習メモ_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:49:58
オリジナル
703 人が閲覧しました

PHP の配列はアプリケーション開発に不可欠な部分です。ここで、PHP 配列を学習する際の私自身の操作をいくつか紹介します。詳しく知りたい学生が参考にしていただければ幸いです。

Web プログラミングの場合、最も重要なことはデータへのアクセス、読み取り、書き込みです。文字列、配列、ファイルなど、多くの保存方法が存在する場合があります。配列は、PHP データ アプリケーションにおいて最も重要なメソッドであると言えます。 PHP には多くの配列関数があります。今後の学習のために、私が学んだことをまとめます。
.配列定義
配列の定義はarray()メソッドを使用して定義され、空の配列を定義できます:

コンパクト()
コードは次のとおりです コードをコピー

$number = 配列(1,3,5,7,9); //空の配列を定義する
$結果 = 配列(); $color =array("赤","青","緑"); //カスタムキー値
$ language = (1=>「英語」,3=>「中国語」,5=>「フランス語」); //2次元配列を定義する
$two = 配列(
"color"=>array("red","blue"), //カンマで終わる
"week"=>array("Monday","Friday") //最後の文には句読点がありません
); ?>




2. 配列を作成します
Compact() 関数 - 1 つ以上の変数 (配列を含む) を配列に変換します: array Compact (mixed $varname [,mixed $... ])。


コードは次のとおりです

コードをコピー ?> [配列] => 配列 ( [0] => と [1] => あなたは?) )
$number = "1,3,5,7,9"; $string = "私は PHPer です"; $array = array("そして","あなたは?"); $newArray = コンパクト("数値","文字列","配列"); print_r ($newArray)



compact() 関数は、2 つ以上の変数を配列に変換するために使用されます (もちろん配列変数も含まれます)。パラメーターは、$ を含む完全な名前ではなく、変数の名前です。反対の関数は extract() で、名前が示すように、キー値を文字列名として、配列値を文字列値として、配列を単一の文字列に変換します。
実行結果:

配列 (
[数字] => 1,3,5,7,9

[文字列] => 私は PHPer です

array_combine()
array_combine() — 2 つの配列を 1 つの配列に再編成します。1 つはキー値として、もう 1 つは値として指定します: array array_combine (array $keys, array $values)



コードは次のとおりです

コードをコピー


$number = 配列("1","3","5","7","9"); $array = array("I","Am","A","PHP","er"); $newArray = array_combine($number,$array); print_r ($newArray)

array_combine 関数については詳しく説明しません。読めば誰でも理解できるでしょう。
実行結果:
配列 ( [1] => I [3] => Am [5] => A [7] => PHP [9] => er )
範囲()
range() 関数 - 指定された範囲の配列を作成します:

?>
コードは次のとおりです
コードは次のとおりです コードをコピー
$array1 = range(0,100,10);//0 は開始値、100 は終了値、10 はステップ値です (デフォルトのステップ値は 1 です)。 print_r($array1); エコー"
"; $array2 = range("A","Z"); print_r($array2); エコー "
"; $array3 = range("z","a"); print_r($array3); ?>



array_fill()
array_fill() 関数 - 配列を埋める関数:


コードをコピー


$array = 範囲(1,10); $fillarray = range("a","d"); $arrayFilled = array_fill(0,5,$fillarray);//$fillarray には、「test」などの文字列を指定できます。 エコー "
";
print_r ($arrayFilled) <td width="464" height="27" bgcolor="#FFE7CE">
エコー "
"; $keys = array("string","2",9,"SDK","PK"); $array2 = array_fill_keys($keys,"テスト"); エコー "
";
print_r ($array2) </td>
エコー "
"; ?>実行結果: [1] => b [2] => c
配列
(
[0] => 配列
(
[0] =>
[1] => b
[2] => c
[3] => d
)

[1] => 配列
(
[0] =>
[3] => d

)

[2] => 配列
(
[0] =>
[1] => b
[2] => c
[3] => d
)

[3] => 配列

(
[0] =>
[1] => b
[2] => c
[3] => d
)

[4] => 配列

(
[0] =>
[1] => b
[2] => c
[3] => d
)

)

配列
(
[文字列] => テスト
[2] => テスト
[9] => テスト中 [SDK] => テスト中 [PK] => テスト中 )

3. 配列の走査


foreach トラバーサル
foreach ($value としての配列式){}
foreach (array_expression as $key => $value){}


コードは次のとおりです


コードをコピー




$speed = 配列(50,120,180,240,380); foreach($speed as $keys=>$values){
echo $keys."=>".$values."
"; }

?>


実行結果:
0=>50
1=>120
2=>180
3=>240
4=>380
while ループトラバーサル
while ループトラバーサルは一般的に list 関数と組み合わせられます。以下は例です。

コードは次のとおりですコードをコピー $staff = array(
array("名前","性別","年齢"),
array("シャオ・チャン","男性",24),
array("小王","女",25),
array("シャオ・リー","男性",23)
); エコー "
"; while(list($keys,$value) = each($staff)){
リスト($名前,$性別,$年齢) = $値
echo ""; }
エコー ""; ?>



ループトラバーサル用
$name$sex$age
コードは次のとおりです

コードをコピー $speed = 範囲(0,220,20); for($i =0;$i エコー $speed[$i]。" "; } ?> 例 1: 次と前


実行結果:
0 20 40 60 80 100 120 140 160 180 200 220
4. 配列ポインタの操作
関連する関数には、reset、prev、end、next、current、および each が含まれます。


コードは次のとおりです

コードをコピー

$speed = 範囲(0,220,20); echo current($speed);// 現在位置の値を出力します (配列の先頭) $i = ランド(1,11); while($i--){ } echo current($speed);// 現在位置の値を出力します エコー "
"; echo prev($speed);// 前の位置の配列値を出力します コードをコピー
next($speed);//ポインターを現在の位置から 1 つ後ろに移動します
エコー "
"; echo reverse($speed);//配列のポインタをリセットし、ポインタを開始位置に向けます
エコー "
"; echo end($speed);// 最後の位置の配列値を出力します
エコー "
"; ?>



実行結果:
0220
200
0
220
例2: 各関数ポインタ操作



コードは次のとおりです



$speed = 範囲(0,200,40)
echo "それぞれがポインタを下に移動します
"; echo "ギア 0 の速度は ".current(each($speed))."
"; echo "1 速の速度は ".current(each($speed))."
"; echo "2 速の速度は ".current(each($speed))."
"; echo "3速の速度は".current(each($speed))."
"; echo "4速の速度は".current(each($speed))."
"; echo "5速の速度は".current(each($speed))."
"; echo "各関数を使用して配列ポインタを移動し、配列を走査します
"; reset($speed);//これは、配列ポインタを配列の先頭にポイントすることです
while(list($key,$value)=each($speed)){

echo $key."=>".$value."
"; } ?>

実行結果:
それぞれポインターを下に移動します
ギア0の速度は0です
1速の速度は40です
2速の速度は80です
3速の速度は120です
4速の速度は160です
5速の速度は200です
各関数を使用して配列ポインターを移動し、配列を走査します
0=>0
1=>40
2=>80
3=>120
4=>160
5=>200
5. 配列の追加と削除の操作
配列メンバーを追加します
例 1: $num[] = 値は直接割り当てられ、配列の末尾に追加されます:
[コード

式を使用して配列メンバーを追加します 配列 ( [0] => 80 [1] => 120 [2] => 160 [3] => 240 )
コードは次のとおりです コードをコピー
] $num = 配列(1=>80,2=>120,3=>160); echo "式を使用して配列メンバーを追加します
"; $num[]=240; print_r($num); ?>



実行結果:
例 2: array_pad 関数、配列の先頭と末尾に選択的に追加します




コードは次のとおりです

コードをコピー $num = 配列(1=>80,2=>120,3=>160); $num = array_pad($num,4,200); echo "array_pad 関数を使用して配列の末尾にメンバーを追加します
"; print_r($num); echo "
array_pad は配列ヘッダーにも入力できます
"; $num = array_pad($num,-8,40); print_r($num); ?>コードは次のとおりです



実行結果:
array_pad 関数を使用して配列の末尾にメンバーを追加します
配列 ( [0] => 80 [1] => 120 [2] => 160 [3] => 200 )
array_pad は配列のヘッダーを埋めることもできます
配列 ( [0] => 40 [1] => 40 [2] => 40 [3] => 40 [4] => 80 [5] => 120 [6] => 160 [7] => 200 )
例 3: スタック操作の追加 (array_push):

コードをコピー



$num = 配列(1=>80,2=>120,3=>160); array_push($num,200,240,280);//配列の末尾に自分で直接追加できます

print_r($num); ?>実行結果: 例 4: array_unshift() は先頭に配列メンバーを追加します
配列 ( [1] => 80 [2] => 120 [3] => 160 [4] => 200 [5] => 240 [6] => 280 )

コードは次のとおりです

コードをコピー

$num = 配列(1=>80,2=>120,3=>160); array_unshift($num,0,40);//配列の最後に直接、自分で追加できます
print_r($num); ?>

実行結果:
配列 ( [0] => 0 [1] => 40 [2] => 80 [3] => 120 [4] => 160 )
注: array_unshift() 関数を使用すると、配列のキー値は 0 から始まります。
配列メンバーを削除します
例 1: unset() コマンドは配列メンバーまたは配列を削除します:

unset コマンドでは配列全体を削除できません 例 2: array_splice() 関数は配列メンバーを削除します
コードは次のとおりです コードをコピー
$num = array_fill(0,5,rand(1,10)); print_r($num); エコー "
"; unset($num[4]); print_r($num); エコー "
"; 設定を解除($num)
if(is_array){
echo "unset コマンドは配列全体を削除できません"; }その他{
echo "unset コマンドは配列を削除できます"; }
?>



実行結果: (実行エラーと説明配列も削除され、存在しなくなります)
配列 ( [0] => 9 [1] => 9 [2] => 9 [3] => 9 [4] => 9 )
配列 ( [0] => 9 [1] => 9 [2] => 9 [3] => 9 )

注意: 未定義の定数 is_array の使用 - H:wampwwwtestingeditorplustest.php の 21 行目で 'is_array' とみなします



コードは次のとおりです

コードをコピー

$a=array("赤"、"緑"、"青"、"黄"); count ($a); // 4 を取得します count ($a); // 3 を取得します echo $a[1] //青になる ; ?>コードをコピー
array_splice($a,1,1); // 2 番目の要素を削除します echo $a[2] // 黄色を取得します


例 3: array_unique は配列内の重複した値を削除します:



コードは次のとおりです

$a=array("赤", "緑", "青", "黄",​​"青","緑"); $result = array_unique($a); print_r($result); ?>実行結果: 配列 ( [0] => 赤 [1] => 緑 [2] => 青 [3] => 黄 )
例 4: array_merge、array_merge_recursive 配列のマージ




コードは次のとおりです

コードをコピー

$array1 = array("r"=>"red",1,2,3,4); $array2 = array("b"=>"blue",4=>5,6,7,8,9); $array3 = array("r"=>"read",4=>10,2=>11); $array4 = 配列(
配列(4=>10)、

配列(7=>13) ); $array5 = 配列( 配列(4=>11)、 ); $result = array_merge($array1,$array2,$array3,$array4,$array5); エコー "
";
print_r($result);
エコー "
"; $result = array_merge_recursive($array1,$array2,$array3,$array4,$array5); エコー "
";
print_r ($result);
エコー "
"; ?>

実行結果:
配列
(
[r] =>読んでください
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[b] =>青
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 11
[11] =>配列
(
[4] => 10
)

[12] =>配列
(
[7] => 13
)

[13] =>配列
(
[4] => 11
)

[14] =>配列
(
[6] => 12
)

)
配列
(
[r] =>配列
(
[0] =>赤
[1] =>読んでください
)

[0] => 1
[1] => 2
[2] => 3
[3] => 4
[b] =>青
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 11
[11] =>配列
(
[4] => 10
)

[12] =>配列
(
[7] => 13
)

[13] =>配列
(
[4] => 11
)

[14] =>配列
(
[6] => 12
)

)

注:1. array_merge の関数名は、数字のインデックスを再構築するもので、同じ文字列名が見つかった場合に後続で前に上書きされます。 6. 数組の鍵の値と値の操作
例一:in_array() 检测数グループの中に何かが存在するかどうか

配列(6=>12)
代码如下复制幣
$array = 範囲(0,9);
if(in_array(9,$array)){
echo "数组中に存在";
}
?>

运行結果:数组中存在

例二:key() 取得数グループ現在の键名:

代码如下复制幣
$array = 範囲(0,9);
$num = ランド(0,8);
その間($num--)
次($array);
$key = キー($array);
エコー $key;
?>

この例の結果は、範囲 (0 ~ 8) であり、結果の表示ではありません。 例 3:list() 関数数握数グループ中の值赋给指定变量:


代码如下 $staff = array(

例 4: array_flip() は配列のキーと値を交換します:

复制幣
array("姓名","性别","年龄"),
array("小张","男",24),
array("小王","女",25),
array("小李","男",23)
);
echo "";
while(list($keys,$value) = each($staff)){
リスト($name,$性別,$年齢) = $値;
echo "";
}
echo "
$name$sex$age
";
?>

配列 ( [赤] => 0 [青] => 1 [黄] => 2 [黒] => 3 )
コードは次のとおりです コードをコピー

$array = array("赤","青","黄","黒"); print_r($array); エコー "
"; $array = array_flip($array); print_r($array); ?>




実行結果:

配列 ( [0] => 赤 [1] => 青 [2] => 黄 [3] => 黒 )


コードは次のとおりです

コードをコピーコードをコピー
$array = array("赤","青","黄","黒"); $result = array_keys($array); print_r($result); エコー "
"; $result = 配列値($array); print_r($result); ?>


実行結果:
配列 ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
配列 ( [0] => 赤 [1] => 青 [2] => 黄 [3] => 黒 )
例 6: array_search() 検索値:


コードは次のとおりです




$array = array("赤","青","黄","黒"); $result = array_search("red",$array); if(($result === NULL)){

echo "値 red は存在しません"; }その他{ echo "値が存在します $result"; }結果: 値 0 が存在します
?>
array_search()関数の戻り値はfalse、0、NULLの場合がありますので、判断する際は「===」

を使用するように注意してください。 7. 配列のソート
例 1: sort()、rsort()/asort()、arsort() による配列の並べ替え:



コードは次のとおりです

コードをコピー

$array = array("b","c","d","a"); sort($array);//低い順に並べ替えます
print_r($array); エコー "
"; rsort($array);//逆ソート
print_r($array); ?>

配列 ( [0] => a [1] => b [2] => c [3] => d ) sort() 関数と rsort() 関数は配列を低位から高位にソートし、戻り値は bool 値です。 asort() 関数と arsort() 関数はキー値の並べ替えを保持し、並べ替え後にキー値のインデックスは再作成されません。 例 2: 配列の順序を乱す - shuffle() 関数: print_r($array); ?>
結果: 配列 ( [0] => d [1] => c [2] => b [3] => a )


コードは次のとおりです

コードをコピー



$array = array("a","b","c","d"); shuffle($array);//低い順に並べ替えます



結果は動的です:
配列 ( [0] => c [1] => a [2] => d [3] => b )
シャッフルの結果は少しランダムで、更新されるたびに異なります。
例 3: array_reverse() 配列の反転:

実行結果:
コードは次のとおりです コードをコピー

$array = array("d","b","a","c"); $array = array_reverse($array);// 低い順に並べ替えます
print_r($array); ?>

配列 ( [0] => c [1] => a [2] => b [3] => d )

例 4: 自然な並べ替えアルゴリズム - natsort() および natcasesort();

コードは次のとおりです $array = array("sort2","sort5","sort1","sort4"); natsort($array);//低い順に並べ替えます

print_r($array); エコー "
"; natcasesort($array)
print_r($array); ?>




結果:
配列 ( [1] => ソート 5 [2] => ソート 1 [0] => ソート 2 [3] => ソート 4 )

配列 ( [2] => ソート 1 [0] => ソート 2 [3] => ソート 4 [1] => ソート 5 ) natsort() および natcasesort() は、配列に対して自然なソートを実行します。これは、数値を使用する通常のソート アルゴリズムです。 natcasesort は大文字と小文字を区別しません。 例 5: 配列をキー値でソートする ksort():
コードをコピー



コードは次のとおりです

コードをコピー

$array = array(1=>"ソート 2",4=>"ソート 5",2=>"ソート 1",3=>"ソート 4"); ksort($array);//低い順に並べ替えます print_r($array); ?>$


結果:
配列 ( [1] => ソート 2 [2] => ソート 1 [3] => ソート 4 [4] => ソート 5 )
注: ksort() 関数はインデックスを再作成します。

8. 配列のその他の使用法



コードは次のとおりです

コードをコピー

配列 = 配列 ('A', 'B', 'C' ); // int array_unshift(array $array,混合変数[,混合変数...]) を使用して、配列の先頭に要素を追加します array_push ( $array, 'E', 'F', 'G' ); var_dump ( $array ); $array = 配列 ('A', 'B', 'C' ); //mixed array_shift(array $array) を使用して配列の先頭の要素を削除します
array_unshift ( $array, 'E', 'F', 'G' ); var_dump ( $array ); $array = 配列 ('A', 'B', 'C' ); // int array_push(array $array,混合変数[,混合変数...]) を使用して、配列の最後に要素を追加します
配列シフト ( $array ); var_dump ( $array );


$array = 配列 ('A', 'B', 'C' ); //mixed array_pop(array $array) を使用して配列の末尾の要素を削除します
array_pop ( $array ); var_dump ( $array );

/*
* 配列内の特定の値を検索し、見つかった場合は TRUE を返し、それ以外の場合は FALSE を返します
* boolean in_array(混合針,配列干し草[,ブール値厳密])
* 配列内で指定されたキーを検索し、見つかった場合は TRUE を返し、そうでない場合は FALSE を返します
* ブール値 array_eky_exists(混合キー,配列配列)
* 配列内の特定の値を検索し、見つかった場合は TRUE を返し、それ以外の場合は FALSE を返します
* boolean array_search(混合針,配列干し草[,ブール厳密])
* 配列のすべてのキーで構成される新しい配列を取得します
* 配列 array_keys(配列 array[,混合検索値])
* 配列のすべての値で構成される新しい配列を取得します
* 配列 array_values(配列 配列)
* 配列サイズを決定する
* 整数カウント(配列 array[,int モード])
* 整数 sizeof(配列 array[,int モード])
* 配列要素の出現頻度をカウントします
* 配列 array_count_values(配列 配列)
* 配列から重複した値を削除し、一意の値で構成される配列を返します
* 配列 array_unique(配列 配列)
* 配列要素の順序を逆にします。preserve_key が TRUE の場合、配列キー値の順序は変更されません
* 配列 array_reverse(array array[,boolean prepare_key])
* 配列のキーと値を置き換えます
* 配列 array_flip(配列 配列)
* 配列の順序ソート、sort_flags パラメーターはオプション、デフォルトの動作
* SORT_NUMBERIC、数値による並べ替え、整数または浮動小数点数の並べ替えに役立ちます
*SORT_REGULAR、ASCII 値で並べ替えます
*SORT_STRING、最も近い人が知っている正しい順序で並べ替えてください
※asort関数のキー値の順序は変わりません
* void sort(array array[,int sort_flags])
* void asort(array array[,int sort_flags])
* 配列を逆順に並べ替えます。sort_flags パラメーターはオプションで、デフォルトの動作は
* SORT_NUMBERIC、数値による並べ替え、整数または浮動小数点数の並べ替えに役立ちます
*SORT_REGULAR、ASCII 値で並べ替えます
*SORT_STRING、最も近い人が知っている正しい順序で並べ替えてください
※arsort関数のキー値の順序は変わりません
* void rsort(array array[,int sort_flags])
* void arsort(array array[,int sort_flags])
* 配列の自然なソート
* void natsort(配列配列)
* 大文字と小文字を区別しない自然な並べ替え
* void natcasesort(array 配列)
* 配列をキー値で並べ替えます
* boolean ksort(array array[,int sort_flags])
* 配列をキー値によって逆順に並べ替えます
* boolean krsort(array array[,int sort_flags])
* ユーザー定義の順序に従って並べ替えます
* void usort(配列 配列,コールバック関数名)
* 配列を結合して、結合された配列を返します。 array_merge の背面が前面を覆い、array_merge_recursive が一緒にマージします
* array array_merge(array array1[array array2...])//複数
* array array_merge_recursive(array array1,array array2[,array…])//2 つ以上
* キーと値は新しい配列を形成します
* 配列 array_combine(配列キー, 配列値)
* オフセットから始まりオフセット+長さで終わる配列の一部を返します
* 配列 array_slice(配列 配列, int オフセット [,int 長])
* offset から始まり offset+length で終わるすべての要素を削除し、削除された要素を配列の形式で返します
* array array_splice(array, int offset [,int length[,array peplacement]])
* 配列の共通部分を見つけます。キー値は最初の配列のキー値です
* 配列 array_intersect(配列 配列1,配列 配列2[,配列N……])
* 等しいキー値を含む配列の共通部分を見つけます。そのキー値は最初の配列のキー値です
* 配列 array_intersect_assoc(配列 配列1,配列 配列2[,配列N……])
* 配列の差分セットを見つけます。最初の配列には他の配列では見つからない値があります
* 配列 array_diff(配列 配列1,配列 配列2[,配列N……])
* 配列の差分セットを見つけます。最初の配列には、他の配列では見つからない値に等しいキー値が含まれています
* 配列 array_diffassoc(配列 配列1,配列 配列2[,配列N……])
* 配列内の 1 つ以上のキー値を返します
* 混合 array_rand(array array[,int num_entries])
*インスタントシャッフル機能
* void shuffle(array input_array)
* 配列内の値を合計します
* 混合 array_sum(配列 配列); * 配列を size 要素を含む多次元配列に分解します
* array array_chunk(array 配列, int サイズ [,boolean prepare_keys])
*/

http://www.bkjia.com/PHPjc/632681.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632681.html技術記事 php の配列はアプリケーション開発に不可欠な部分です。ここで、php 配列の学習に関する私自身の操作をいくつか紹介します。詳しく知りたい学生が参加できることを願っています。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!