ホームページ  >  記事  >  バックエンド開発  >  PHP 配列の学習に関するいくつかの導入メモ_PHP チュートリアル

PHP 配列の学習に関するいくつかの導入メモ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:13:36708ブラウズ

PHP には 3 種類の配列があります: 数値配列 数値 ID キーを持つ配列 連想配列 配列内の各 ID キーは値に関連付けられます 多次元配列 1 つ以上の配列を含む配列 さて、メモを見てみましょう。

コードは次のとおりです コードをコピー

header('Content-Type: text/html; charset=utf-8'); エコー '

';
関数 var_array($array) <br>
{ <br>
エコー '<pre class="brush:php;toolbar:false">';
var_dump($array);
エコー '
'; }
関数 printr($array)
{
エコー '
';
print_r($array);
エコー '
'; }
関数 getArr($sNum, $eNum=1, $step=1)
{
$arr = range($sNum, $eNum, $step); $reArr = 配列(); foreach($arr as $v)
{
$reArr[$v] = ランド(0,10); }
設定を解除($arr)
$reArr を返します。 }
/**
* 配列配列の演習
*/
//------------------------------------------------
//array_change_key_case() は、最後のパラメータ CASE_UPPER (大文字に変換)、CASE_LOWER (デフォルトで小文字に変換) によって決定される、配列インデックスの大文字と小文字を変更します
$expArr = 配列(
'fiRsT' => '1'、
'sEcoNd' => '2'、
'ThIrd' => array(
'フイマ' => '3'、
'nengZhuaNma' => '5'、
)
); printr(array_change_key_case($expArr));//すべてを小文字に変換します
printr(array_change_key_case($expArr['ThIrd'], CASE_UPPER));//すべてを大文字に変換 $expArr 配列内のインデックス キーのみを変換します
//概要: この関数は配列の 1 つのレベルにのみ影響します。 元の配列には影響しません
echo '


'; //-----------------------------------------------
//array_chunk($array, $size, false)
//配列を多次元配列に分割します。size は、$size ごとに配列がどのように多次元配列になるかを決定します。true/false は、新しい配列のキー値が元の配列のキーを継承するかどうかを決定します
$expArr = 配列('4','2','6','d','2'); printr(array_chunk($expArr, 3)); //概要: この関数は配列の 1 つのレベルにのみ影響します。 元の配列には影響しません
echo '


'; //-----------------------------------------------
//array_combine($keyArr, $valArr)
// 2 つの配列を 1 つの配列に結合します。$keyArr がキー、$valArr が値になります
$expKey = array('g', 'd', 't'); $expVal = 配列('5', '8', '7'); printr(array_combine($expKey, $expVal)); //この関数も配列の 1 つのレベルにのみ影響し、新しい配列を返します
echo '


'; //-----------------------------------------------
//array_count_values($array)
// $array 配列内の各値の出現回数をカウントし、その値を新しい配列のキーとして使用し、出現回数を値として使用します
$array = array('v1'=>'265', 'v2'=>'352', 'v3'=>'265', 'v4'=>'349', 'v5'=> ;'265'); printr(array_count_values($array)); //概要: この関数は文字列型と整数型の統計値にのみ使用できます。他の型では警告が発行されます。
echo '


'; //-----------------------------------------------
//array_diff($array1, $array2...)
// $array1 を基本配列として使用し、その値は新しい配列を形成する他のパラメーター配列には現れません
$arr1 = array('v4'=>458, 'gren', 'b5', 'a5'); $arr2 = array('v4'=>598, 'red', 'a5', 'c4'); printr(array_diff($arr1, $arr2)); //概要: 配列を取得し、それを多数の配列に入れて、配列にない値を見つけるには、統計とデータ比較を使用する必要があります
//array_intersect($array, $parArr, ....)
//この関数は機能的には array_diff と同じですが、array_intersect() は共有データを返すのに対し、array_diff は $array にのみ存在するデータである点が異なります
//
echo '


'; //-----------------------------------------------
//array_diff_assoc($array1, $array2...)
// array_diff() 関数と同じですが、これも比較にキーを使用します
//
echo '


'; //-----------------------------------------------
//array_diff_key
//array_diff()関数と同じ
//これは、他のパラメーター配列で検索するために $array1 のキーのみを使用するだけです
//
echo '


';//-----------------------------------------------
//array_diff_uassoc($arr1, $parArr...., コールバック関数)
//関数は array_diff() と同じですが、ユーザーはコールバック関数を定義する必要があります
//この関数の機能がわかりません
//
echo '


'; //-----------------------------------------------
//array_diff_ukey($arr1, $parArr...., コールバック関数)
//関数は array_diff_key() と同じですが、array_diff_uassoc と同じであり、コールバック関数が必要です
//
//
echo '


'; //------------------------------------------------
//array_fill($startInt, $numInt, $value)
// $value を新しい配列に入力します。新しい配列の開始インデックス位置は、$startInt によって決定されます。$numInt は、この配列によって生成されるインデックスの数を制御します。
//ヒント: $value、$startInt、$numInt 以外は数値でなければなりません。そうでない場合はエラーが報告されます
printr(array_fill(2, 5, '値')); //要約: 何に使用するか分かりません
echo '


'; //-----------------------------------------------
//array_fill_keys($arrKeys, $value); //関数はarray_fill()関数と同じです。 $arrKeys [配列の値] が新しい配列のキーとして使用されるだけです
$arrKeys = array('45', 'd', 'b', 'c'); printr(array_fill_keys($arrKeys, '値')); echo '


'; //------------------------------------------------
//array_filter($arr, callBack コールバック関数)
//フィルター関数は、$arr 配列の値を判断して、callBack コールバック関数が true を返した場合、現在のキーと値が新しい配列に追加されます
//ヒント: コールバック関数は、ルールに準拠しない配列キーを除外するルールを作成できます
関数 cb($val)
{
$val%2 == 0 を返します; }
$array = array('k1'=>3, 'k2'=>5,'k4'=>54654, 'k5'=>8794, 8945, 32549564); printr($array, 'cb'); //ヒント: コールバック関数名は引用符で囲むことをお勧めします
//概要: このメソッドはデータ フィルタリングの統合に使用できます
unset($array); echo '


'; //------------------------------------------------
//array_flip($array)
//配列内のキーと値の関係を変換します。文字列および統合型のキーのみがサポートされており、他の型については警告が発行され、問題のキー値は変換されません。生成された新しい配列では、キーが同じ場合、既存のキーの値が継続的に置き換えられます
$arr = array('k1'=>'v1', 'k2'=>'v2', 'k3'=>'v4', 'k4'=>'v4', 'k5'=> ;'v5'); printr(array_flip($arr)); 設定を解除($arr)
echo '


'; //------------------------------------------------
//array_key_exists($key, $array)
//現在の配列にキーが存在するかどうかを判断し、bool を返します。物体の判断にも使えます
$array = array('cb' => 234, 'dv'=> 45, 'one'=> 897); if(array_key_exists('one', $array))
echo 'この配列に存在します'; それ以外は
エコー「存在しません」
; echo '


'; //------------------------------------------------
//array_keys($array, $selSearch_value)
//配列内のキー名を返し、新しい配列を形成します。 $selSearch_value が指定されている場合、$selSearch_value に等しい配列内のキー名が返されます
$array = getArr(4, 10); printr(array_keys($array)); printr(array_keys($array, '5'));//値で検索
unset($array); //概要: データ統計やデータ比較検証にも使用できます
echo '


'; //------------------------------------------------
エコー 'array_map:'; //array_map('callBack', $array,...)
//渡された関数をコールバック関数の戻り値に返す
//コールバック関数は配列を返すこともできます。さらに、コールバック関数は、渡される配列内の値のみを受け入れます
関数マップCb($n)
{
$n*$n*$n を返します。 }
$array = getArr(4, 15); printr(array_map('mapCb', $array)); echo '


'; //------------------------------------------------
//array_merge($array,$array2...)
//複数の配列を 1 つの配列に結合し、数値インデックスを書き換えます。
$arr1 = getArr(1, 5); $arr2 = getArr(5, 10); printr(array_merge($arr1, $arr2)); //概要: 複数の配列を新しい配列に結合します。
echo '


'; //------------------------------------------------
//array_merge_recursive($arr1, $arr2....)
// 機能は上記と同じです。ただし、関数はキーを置き換えるのではなく、同じキー名の値を持つ新しい配列を形成します
//ただし、使用したい場合は、実際の状況に応じて使用してください
echo '


'; //------------------------------------------------
//array_multisort()
//多次元配列のソート。現在は 2 次元配列のソートのみが実装されています。立体的には配置できないと推定されます
//この関数はメンバー配列の順序を直接変更します
echo '


'; //------------------------------------------------
//array_pad($arr, $size, $value)
// $arr の現在の長さが $size より小さい場合は、$arr の長さが $size に等しくなるまで $value を使用して $arr 配列を埋めます
//$arr の長さが $size 以上の場合、この関数は $arr を埋めません。 $size が 0 より小さい場合は $arr の左側に埋められ、0 より大きい場合は右側に埋められます
echo '


'; //------------------------------------------------
//array_pop($array)
//配列の最後のキーを削除します。
echo '


'; //------------------------------------------------
//array_product($arr)
//配列内のすべての値の積を返します。
//ヒント: この関数は数値以外のデータを処理できません。受信配列に「a や b などの文字列」が含まれている場合、PHP はエラーを報告します
$arr = 配列(4,5,5); エコー配列製品($arr); echo '


'; //------------------------------------------------
//array_push($arr, $keyArr)
// $keyArr を $arr 配列の末尾にキー/スタックの形式で追加します。
// 2 つの関数 array_merge() と array_merge_recursive() の違い:
// arrap_push() は $keyArr を $arr に追加し、他の 2 つの関数は複数の関数を 1 つの関数に接続します
echo '


'; //------------------------------------------------
//array_rand($arr, $num=1)
// 現在の配列内のキーを取得します。キーの数は $num で決まり、デフォルトは 1 です
// $num が 1 の場合、文字列を返します
// $num>1 && $num //そうでない場合、php はエラーを報告します
$arr = getArr(5, 15); printr(array_rand($arr, 4)); echo '


'; //------------------------------------------------
//array_reduce()
//array_map()と同様に、配列内の値はコールバック関数を通じて処理され、戻り値が受け入れられます
//この関数は文字列を返します。配列内のすべての値を計算して計算値を返しますが、array_map は各キーの値を計算して配列を返します
//よくわかりません。例についてはマニュアルを参照してください
echo '


'; //------------------------------------------------
//array_replace($array, $parArr,...)
// $array 内の同じキーの値をパラメータ配列内のキーの値に置き換えます
// $array 配列の後続のパラメーター配列で対応するキーが見つからない場合は、それを新しい配列の末尾に追加します
/*$arr = getArr(4, 10); $arr2 = getArr(6, 15); プリンター($arr); printr($arr2);*/
$base = array('citrus' => array( "オレンジ") , 'ベリー' => array("ブラックベリー", "ラズベリー"), ); $replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry')); printr(array_replace($base, $replacements)); echo '


'; //------------------------------------------------
//array_replace_recursive() 再帰置換
//関数はarray_replace()と同じです。違いは、array_replace_recursive() は $array の構造を変更せずに多次元配列を操作できるのに対し、array_replace() は最終的に 1 次元配列を返すことです
$base = array('citrus' => array( "オレンジ") , 'ベリー' => array("ブラックベリー", "ラズベリー"), ); $replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry')); printr(array_replace_recursive($base, $replacements)); echo '


'; //------------------------------------------------
//array_reverse($arr)
//配列内のキーを逆順に配置します
echo '


'; //------------------------------------------------
//array_search($value, $array)
// $array 配列内の値 $value を持つキー名を検索します
//見つからない場合は false を返します
// $array 配列に複数の $value がある場合、最初に一致したキーのみが返されます
//この関数は array_keys() に似ていますが、違いは戻り値にあります。array_search() は一致するキー名のみを返しますが、array_keys() は一致するすべてのキーで構成される 1 次元配列を返すことができます
echo '


'; //-----------------------------------------------
//array_shift($arr)
//現在の $arr 配列の最初のキーを削除し、後続の数値インデックスを再配置します (ただし、元の順序は変更しません)。数値以外のインデックスは変更されません。
//この関数は array_pop() に似ていますが、異なる点は、array_pop() は最後の関数を削除し、array_shift() は先頭を削除することです
echo '


'; //-----------------------------------------------
//array_slice($arr, $offset, $length=0, false) 配列インターセプト
// 現在の $arr 配列の $offset から始まる $length 要素/キーの合計を返し、新しい配列を形成して返す
// $offset または $length が負の数の場合、オフセットは逆方向になります
// substring() の文字列インターセプトと似た感じです
//PHP マニュアルの例を直接使用します
$input = array("a", "b", "c", "d", "e"); $output = array_slice($input, 2); // "c"、"d"、および "e" を返します
$output = array_slice($input, -2, 1) // "d" を返します
; $output = array_slice($input, 0, 3); // 「a」、「b」、「c」を返します
// 配列キーの違いに注意してください
printr(array_slice($input, 2, -1)); printr(array_slice($input, 2, -1, true)); echo '


'; //-----------------------------------------------
//array_spslice($arr, $offset, $length)
//array_slice() 関数の逆で、この関数は $offset と $length の間の要素を削除します
設定を解除($arr)
echo '


'; //-----------------------------------------------
//array_sum($arr)
// $arr 配列内のすべての値を合計して累積します。数値型以外の場合は変換を試みますが、変換後はほとんどが 0 になります
//この関数は、array_product() と同様に、配列の 1 レベルにのみ影響します
$arr = 配列(
45,56, 'a', 'b'=>getArr(1, 2),
); プリンター($arr); エコー 'array_sum($arr)',array_sum($arr); echo '


'; //-----------------------------------------------
//array_values($arr)
// $arr 配列の値を抽出して新しい配列を形成します
$arr = 配列(
'k1'=>45、'k2'=>56、'k3'=>'a'、'b'=>getArr(1, 2)、
); printr(array_values($arr)); echo '


'; //-----------------------------------------------
//array_unique($arr) は配列をソートします
// $arr 配列の重複を除去し、重複する値をフィルターします。複数の同一の値は最初の値のみを保持します
echo '


'; //-----------------------------------------------
//array_walk($arr, callback[コールバック関数], $sel_perfix='')
// 現在の配列内の各キーを処理のためにコールバック関数に送信します
// $sel_perfix パラメータを追加した場合、コールバック関数は 3 つのパラメータを受け取る必要もあります。そうでない場合は、エラーが報告されます
//この関数は 1 つのレイヤーにのみ影響します
$fruits = array("d" => "レモン", "a" => "オレンジ", "b" => "バナナ", "c" => "リンゴ"); 関数 test_alter(&$item1, $key, $prefix)
{
$item1 = "$プレフィックス: $item1"; }
printr(array_walk($fruits, 'test_print')); array_walk($fruits, 'test_alter', 'fruit'); echo '


'; //-----------------------------------------------
//array_walk_recursive()
//この関数は array_alk(); に似ていますが、$arr の配列の各レベルを再帰し、返された配列は元の配列の構造を変更しません
echo '


'; //-----------------------------------------------
//arsort($arr)
//配列のキー名に従って配列を並べ替えると、文字を並べ替えることができます。ソートに失敗した場合は null が返されます
echo '


'; //-----------------------------------------------
//asort()
//この関数は arsort() に似ていますが、異なる点は次のとおりです: asort() は値を並べ替えます



配列ループ

コードは次のとおりです コードをコピー
foreach ($array as $value) {
$値をエコーする
}
while (list($key) = each($array)) {
エコー $array[$key]
}
foreach ($array を $value として) {
エコー $value;
}
while (list($key) = each($array)) {
エコー $array[$key];
}

配列の「書き込み」操作はループ内で実行されるため、while は foreach よりも高速です。

コードは次のとおりですコードをコピー要約: foreach は値のコピーを必要とするため、while よりも遅いと考えられていますが、実際には、ループ内で配列を読み取るだけの場合、foreach は非常に高速です。これは、PHP で使用されるコピー メカニズムが原因です。 「参照によるコピー、書き込み時のコピー」、この観点から見ると、foreach の効率的な読み取り操作を理解するのは難しくありません。
foreach ($array as $key => $value) {

エコー $array[$key] = $value
; }
while (list($key) = each($array)) {
$array[$key] = $array[$key] .'; }
foreach ($array as $key => $value) {
echo $array[$key] = $value '...';
}
while (list($key) = each($array)) {
$array[$key] = $array[$key] '...';
}

さらに、foreach は配列書き込み操作の処理には適していないため、ほとんどの場合、foreach ($array as $key => $value) の形式のコードは while (list( $key) = each($array))。

http://www.bkjia.com/PHPjc/629148.html

本当http://www.bkjia.com/PHPjc/629148.html技術記事 PHP には 3 種類の配列があります: 数値配列 数値 ID を持つ配列 連想配列 配列内の各 ID は値に関連付けられます 多次元配列 1 つ以上の配列を含む配列、そうですね...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。