ホームページ  >  記事  >  バックエンド開発  >  PHP配列の勉強メモ

PHP配列の勉強メモ

黄舟
黄舟オリジナル
2016-12-17 09:20:041087ブラウズ

コードは次のとおりです:


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

' <br>function var_array($array) <br>{ <br>var_dump ($array); <br>echo '
'
}
function printr($array)
{
print_r($array); ';
}
関数 getArr($sNum, $eNum=1, $step=1)
$arr = range($sNum, $eNum, $step);
$reArr = array(); $arr として $v)
{
$reArr[$v] = rand(0,10)
}
return $reArr;
/**
* 配列配列の演習
*/
/ /------------------------------------------------
//array_change_key_case () 最後のパラメータによって決定される、配列インデックスの大文字と小文字を変更します: CASE_UPPER (大文字に変換)、CASE_LOWER (デフォルトでは小文字)
$expArr = array(
'fiRsT' => '1 ',
'sEcoNd ' => '2',
'ThIrd' => array(
'HuiMa' => '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 = array('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 = array('5', '8', '7') ; ($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));
//概要: この関数は文字列型と整数型の値をカウントするためにのみ使用でき、他の型は警告を発行します。
エコー '


';
//-------------------------- ----------
//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_intersect() を除き、機能的には array_diff と同じです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, 'value'));
//要約: 数値ではありません。何を使うか考えました
echo '


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


'; - ------------------------
//array_filter($arr, callBack コールバック関数)
//$arr をペアにすることによるフィルター関数配列 値を判断し、callBack コールバック関数が true を返した場合、現在のキーと値が新しい配列に追加されます
//ヒント: コールバック関数は、規則に準拠しない配列キーをフィルターで除外する規則を作成できます。
関数 cb( $val)
{
return $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');
unset($arr); echo '


'; - ------------------
//array_key_exists($key, $array)
//現在の配列にキーが存在するかどうかを判断し、bool を返します。オブジェクトの判定にも使用できます
$array = array('cb' => 234, 'dv'=>45, 'one'=>897);
if(array_key_exists('one', $array) ))
echo 'この配列には存在します';
else
echo '存在しません';
//--- --- -------------------------------------
//array_keys($array, $selSearch_value )
//配列内のキー名を返し、新しい配列を形成します。 $selSearch_value が指定されている場合、$selSearch_value に等しい配列内のキー名が返されます
$array = getArr(4, 10); (array_keys($array ));
printr(array_keys($array, '5'));//値で検索
unset($array);
//概要: データ統計、データ比較にも使用できます。と検証
echo '


'; ---------- ----------------
echo 'array_map:'
//array_map('callBack', $array,...)
//渡された関数を返す コールバック関数の戻り値
//コールバック関数は配列を返すこともできます。さらに、コールバック関数は
function mapCb($n)
{
return $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));
//概要: 複数の配列を新しい配列に結合します。
エコー '


';
//-------------------------- ----------
//array_merge_recursive($arr1, $arr2....)
//関数は上記と同じです。ただし、この関数は、値を置き換えるのではなく、同じキー名の値を持つ新しい配列を形成します
//ただし、使用したい場合は、実際の状況に応じて使用してください
echo '
< hr/>
//----------------------------------- --------------- -
//array_multisort()
//多次元配列のソート。現在は 2 次元配列のソートのみが実装されています。三次元推定はできません
//この関数はメンバー配列の順序を直接変更します
echo '


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


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


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



//--------------------------------- ------------
//array_push($arr, $keyArr)
//$keyArr を $arr 配列の末尾に key/stack の形式で追加します。
//array_merge() と array_merge_recursive() の違い:
// arrap_push() は $keyArr を $arr に追加しますが、他の 2 つの関数は複数の関数を 1 つの関数に接続します
echo '
< hr/>
';
//--------------- -------- ----------
//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()
//and array_map ( ) も同様で、コールバック関数を通じて、配列内の値が処理され、戻り値が受け入れられます
//この関数は文字列を返します。これは配列内のすべての値を計算して計算値を返しますが、array_map は各キーの値を計算して配列を返します
//あまり明確ではないので、例についてはマニュアルを参照してください
echo '< >


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


'; ---------- ----------
//array_replace_recursive() 再帰置換
//関数は array_replace( )。違いは、array_replace_recursive() は $array の構造を変更せずに多次元配列を操作できるのに対し、array_replace() は最終的に 1 次元配列を返すことです
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array ('パイナップル'), 'ベリー' => array('blueberry'));
printr(array_replace_recursive($base, $replacements)); br/>';
//---------------------------------------- - ---
//array_reverse($arr)
//配列内のキーを逆順に配置します
echo '


';
// - ----------------------------------------
//array_search( $ value, $array)
// $array 配列内の値 $value を持つキー名を検索します
// 見つからない場合は false を返します
// $array 配列の後ろに複数の $value がある場合、最初の関数は一致するキーを返します
//この関数は array_keys() に似ていますが、違いは戻り値にあります。array_search() は一致するキー名を 1 つだけ返しますが、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); // を返します。 "、および "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 の間の要素
unset( $arr);
echo '


';
//---------- ---------------- ------------------------
//array_sum($arr)
// $arr 配列内のすべての値を合計して累積します。非数値型の場合、変換を試みますが、ほとんどの変換は 0 になります。
//この関数は 1 つのみに影響します。 array_product() と同様の配列のレイヤー
$arr = array(
45,56, 'a', ' b'=>getArr(1, 2),
echo '; array_sum($arr)',array_sum($arr);
echo '


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


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


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


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


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


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

上記は、PHP 配列学習ノートの内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。