PHP 配列の一般的な関数を私から学びましょう - パート 1

WBOY
リリース: 2016-06-20 12:26:40
オリジナル
770 人が閲覧しました

PHP の初心者にとって、関数の多さからどれを学べばよいのかわからないかもしれません。ここでは実際に参考として使用できるものをいくつかリストしました。


1) array_map ( callable $callback , array $arr1 [, array $... ] )

callback (コールバック関数)、関数関数を受け取ります: arr1 のパラメータを前のコールバック関数に順番に渡します

  • コールバック関数にパラメータがある場合:
/*例1*/<?php function  cube ( $n ){    return( $n  *  $n  *  $n );} $a  = array( 1 ,  2 ,  3 ,  4 ,  5 ); $b  =  array_map ( "cube" ,  $a ); print_r ( $b );/** 输出 Array (     [0] => 1     [1] => 8     [2] => 27     [3] => 64     [4] => 125 )**/ ?>
ログイン後にコピー
  • コールバック関数にパラメータがない場合:
<?php/*例2*//*将多个数组进行合并*/$a  = array( 1 ,  2 ,  3 ,  4 ,  5 ); $b  = array( "one" ,  "two" ,  "three" ,  "four" ,  "five" ); $c  = array( "uno" ,  "dos" ,  "tres" ,  "cuatro" ,  "cinco" ); $d  =  array_map ( null ,  $a ,  $b ,  $c ); print_r ( $d );/*输出Array(    [0] => Array        (            [0] => 1            [1] => one            [2] => uno        )    [1] => Array        (            [0] => 2            [1] => two            [2] => dos        )    [2] => Array        (            [0] => 3            [1] => three            [2] => tres        )    [3] => Array        (            [0] => 4            [1] => four            [2] => cuatro        )    [4] => Array        (            [0] => 5            [1] => five            [2] => cinco        ))*/ ?>
ログイン後にコピー

2) range (mixed $start ,mixed $limit [,number $step = 1 ] )

step は間隔値を表します。記述されていない場合、デフォルトは 1

/*例1,产生一组数字*/$nums = range(1, 5);print_r($nums);/*输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )*/$nums = range(1, 5, 2);print_r($nums);/*输出:Array ( [0] => 1 [1] => 3 [2] => 5 )*/
ログイン後にコピー
/*例2,产生一组字母数组*/$array = range('a','f');print_r($array);/*输出:Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )*/$array = array('a', 'f', 2);print_r($array);/*输出:print_r($array);/*输出:Array ( [0] => a [1] => c [2] => e )*/
ログイン後にコピー

3) array_merge ( array $ array1 [, array $... ] )

array_merge() 1 つ以上の配列のセルをマージし、1 つの配列の値を前の配列に追加します。結果の配列を返します。

入力配列に同じ文字列キー名がある場合、キー名の後の値で前の値が上書きされます。ただし、配列に数値キーが含まれている場合、後続の値は元の値を上書きせず、追加されます。

配列のみが指定され、その配列が数値的にインデックス付けされている場合、キー名は連続して再インデックス付けされます。

/*解释:如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。*/$array1 = array(1, 2, 3, 4, 5);$array2 = array(1, 2, 8, 9);$array3 = array_merge($array1, $array2);print_r($array3);/*输出:Array(    [0] => 1    [1] => 2    [2] => 3    [3] => 4    [4] => 5    [5] => 1    [6] => 2    [7] => 8    [8] => 9)*/
ログイン後にコピー

4) array_merge_recursive ( array $array1 [, array $... ] ) 1 つ以上の配列を再帰的にマージします

入力配列が同じ文字列キー名を持つ場合、値は配列にマージされ、それが再帰的に行われるため、値自体が配列の場合、この関数は対応するエントリに従い、それを別のエントリにマージします配列。ただし、配列の配列キー名が同じ場合、後の値は元の値を上書きせず、元の値に追加されます。

値は同じキー名に従ってレイヤーごとにマージされます

/*例1*/$ar1 = array("color" => array("favorite" => "red"), 5);$ar2 = array(10, "color" => array("favorite" => array('a'=>"red"), "blue"));$result = array_merge_recursive($ar1, $ar2);print_r($result);/*输出:Array(    [color] => Array        (            [favorite] => Array                (                    [0] => red                    [a] => red     重点                )            [0] => blue        )    [0] => 5    [1] => 10)*/
ログイン後にコピー
/*例2*/$ar1 = array("color" => array("favorite" => "red"), 5);$ar2 = array(10, "color" => array("favorite" =>"red", "blue"));$result = array_merge_recursive($ar1, $ar2);print_r($result);/*输出:Array(    [color] => Array        (            [favorite] => Array                (                    [0] => red                    [1] => red  重点                )            [0] => blue        )    [0] => 5    [1] => 10)*/
ログイン後にコピー

5) array_pad ( array $input , int $ Pad_size ,mixed $pad_value ) 指定された長さまで配列に値を追加します。元の配列は変更されません

<?php$input = array(12, 10, 9);$result = array_pad($input, 5, 0);// result is array(12, 10, 9, 0, 0)$result = array_pad($input, -7, -1);// result is array(-1, -1, -1, -1, 12, 10, 9)$result = array_pad($input, 2, "noop");// not padded/*如果size<数组的长度,将不会有变化*/?>
ログイン後にコピー

6) array_pop ( array &$array ) 末尾の 1 つの要素を移動します。元の配列は変更されます。

array_pop() は、配列 array の最後の要素をポップして返し、配列 array の長さを減らします。 1つずつ。 配列が空の場合 (または配列ではない場合)、NULL が返されます。 さらに、呼び出された値が数値でない場合は、警告が生成されます。

<?php$stack = array("orange", "banana", "apple", "raspberry");$fruit = array_pop($stack);print_r($stack);?>/*输出Array(    [0] => orange    [1] => banana    [2] => apple)*/
ログイン後にコピー

7) array_shift() この関数を使用すると、配列の先頭のユニットが変更されます。ポインタはリセットされます (reset())。

array_shift() 配列の最初の要素をシフトして結果として返し、配列の長さを 1 つ減らし、他のすべての要素を 1 つ前にシフトします。すべての数値キー名は 0 から数えるように変更され、テキスト キー名は変更されません。 配列が空の場合 (または配列ではない場合)、NULL が返されます

8) int array_push ( array &$array ,mixed $var [,mixed $... ] )

  • array_push() は配列をスタックとして扱い、渡された変数を配列の最後にプッシュします。配列の長さはスタックにプッシュされた変数の数に応じて増加します
  • 処理された配列の要素数を返します

9) リセット (配列 &$array) 配列の内部要素をリセットします。 ポインタは最初の要素を指します。

  • reset() は、配列の内部ポインタを最初の要素に巻き戻し、最初の配列要素の値を返します。 。
  • 配列が空の場合は、false を返します

10) end (array &$array)

を通じて参照されるパラメータ配列>(&)はこの関数で変更するため渡されます。 これは、実数変数のみを参照渡しできるため、関数によって返される配列ではなく、実数変数を渡す必要があることを意味します。

  • end() 配列の内部ポインタを最後の要素に移動し、その値を返します。
  • 配列が空の場合は false を返します
<?phpfuncation back(){    $arr = array(1, 2, 3);    return $arr;}/*上面引用传递的意思请注意看*/$num = end(back()); //错误!,因为该参数是引用传递$array = back();$num = end($array); //正确
ログイン後にコピー

参照渡しの場合、関数の戻り値が変数に代入されていない場合、関数の戻り値は代入されません。本当にメモリの中に別の空間を開きます。参照によって渡されるパラメータには実メモリが必要です。したがって、 $array = back() は $array 変数

のメモリを開きます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!