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 $... ] )
9) リセット (配列 &$array) 配列の内部要素をリセットします。 ポインタは最初の要素を指します。
10) end (array &$array)
を通じて参照されるパラメータ配列>(&)はこの関数で変更するため渡されます。 これは、実数変数のみを参照渡しできるため、関数によって返される配列ではなく、実数変数を渡す必要があることを意味します。
<?phpfuncation back(){ $arr = array(1, 2, 3); return $arr;}/*上面引用传递的意思请注意看*/$num = end(back()); //错误!,因为该参数是引用传递$array = back();$num = end($array); //正确
のメモリを開きます。参照渡しの場合、関数の戻り値が変数に代入されていない場合、関数の戻り値は代入されません。本当にメモリの中に別の空間を開きます。参照によって渡されるパラメータには実メモリが必要です。したがって、 $array = back() は $array 変数