使用法: array_change_key_case($input (array),CASE_UPPER|CASE_LOWER)、CASE_LOWER は小文字 (デフォルト) を返し、CASE_UPPER は大文字を返します
例:
$input_array = array("FirSt" => 1, "SecOnd" => 4);<br />var_dump(array_change_key_case($input_array, CASE_UPPER));<br />var_dump(array_change_key_case($input_array));
結果: array(2) { ["FIRST"]=> int(1) ["SECOND"]=> int(4) }
array(2) { [ "first"]=> int(1) ["first"]=> int(4) }
2. 配列を複数の配列に分割します。 array_chunk
使用法: array_chunk($input(array),$size(int),TRUE|FALSE)、$size は各新しい配列の番号です。TRUE は元のキー名を保持し、FALSE は再起動します数値インデックスから (デフォルト)。
$input_array = array('a'=>'python',"b"=>"java","c"=>"php","d"=>"mysql","e"=>"javascript","f"=>"redis","g"=>"R","h"=>"mongodb");<br />var_dump(array_chunk($input_array, 2));<br />var_dump(array_chunk($input_array, 2, true));
結果: 配列(4) { [0]=> 配列(2) { [0]=> 文字列(6) "Python" [1]=> "java" } [1]=> 配列(2) { [0]=> 文字列(3) [1]=> 文字列(5) 2) { [0]=> 文字列(10) [1]=> 文字列(5) } [3]=> 文字列(1) ) "R" [1]=> 文字列(7) "mongodb" } }
配列(4) { ["a"]=> 文字列(6) "python" ["b"]=> 文字列(4) "java" } [1]=> 配列(3) "php" [" d"]=> string(5) "mysql" } [2]=> array(2) { ["e"]=> string(10) "javascript" ["f"]=> string( 5) "redis" } [3]=> 配列(2) { ["g"]=> 文字列(1) "R" ["h"]=> 文字列(7) "mongodb" }
3. 1 つの配列の値をキー名として使用し、別の配列の値をその値として使用して配列を作成します。 array_combine
使用法: array_combine($input1(array),$input2( array ))。$input1 の配列はキー名で、$input2 の配列はキーの値です。長さが異なる場合は、
$a=array("a","b","c");<br />$b=array("php","python","mysql");<br />$c = array_combine($a, $b);<br />var_dump($c);<br />$e=array("a","b");<br />$f=array_combine($e,$b);<br />var_dump($f);<br />
結果:
array( 3) { ["a"]=> string(3) "php" ["b"]=> string(6) 5) "mysql" }
警告: array_combine() [function.array-combine]: 両方のパラメータは、D:WWWarrayarraytest.php に同じ数の要素を持つ必要があります。 line 8
bool(false)
4. 配列内のすべての値の出現数をカウントします array_count_values
使用法: array_count_values ($ input(array))
$input_array = array('a'=>'python',"b"=>"java","c"=>"php","d"=>"mysql","e"=>"javascript","f"=>"redis","g"=>"R","h"=>"mongodb");<br />$array = array(1, "hello", 1, "world", "hello");<br />var_dump(array_count_values ($array));<br />var_dump(array_count_values ($input_array));<br />
結果:
array(3) { [1]=> int(2) ["hello"]=> int; "ワールド"]=> int(1) }
array(8) { ["Python"]=> int(1) ["php"]=> int(1) ["mysql"]=> int(1) ["redis"]=> int; R"]=> int(1) ["mongodb "]=> int(1) }
使用法: array_diff($ input1(array),$input2(array),$input(array)....); $input の値を返しますが、他の配列には返しません
$input_array = array('python',"b"=>"java","c"=>"php","d"=>"mysql","e"=>"javascript","f"=>"redis","R","h"=>"mongodb");<br />$array = array("javascript","f"=>"redis","g"=>"R","h"=>"mongodb");<br />var_dump(array_diff($input_array,$array));
結果: array(4) { [ 0]=> 文字列(6) "python" ["b"]=> 文字列(4) "java" ["c"]=> 文字列(3) "php" ["d"]=> string(5) "mysql" }
6. コールバック関数を使用してキー名を比較し、配列の差分セットを計算します - array_diff_ukey
使用法は array_diff と同じです。 array_diff はキー値に基づいており、array_diff_ukey はキー名のみに基づいていますが、ユーザーがカスタマイズできると言われていますが、インターネット上の他の記述やマニュアルを参照してください。 、コールバック関数はすべて同じであるようです。理解できれば、例をいくつか挙げてください。まずそれを使用してください。
function key_compare_func($key1, $key2){<br /> if ($key1 == $key2)<br /> return 0;<br /> else if ($key1 > $key2)<br /> return 1;<br /> else<br /> return -1;<br />}<br />$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);<br />$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);<br />var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
结果:array(2) { ["red"]=> int(2) ["purple"]=> int(4) }(都是求差集,所谓的回调函数也就这样。。。)
7、用用户提供的回调函数做索引检查来计算数组的差集-----array_diff_uassoc
用法:上面用法一样,只是在键值的基础上,键名也参与了比较
function key_compare_func($a, $b)<br />{<br /> if ($a === $b) {<br /> return 0;<br /> }<br /> return ($a > $b)? 1:-1;<br />}<br />$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");<br />$array2 = array("a" => "green", "yellow", "red");<br />$array3=array("a" => "green", "red", "b" => "brown", "c" => "blue");<br />$array4=array("a" => "green", "red", "yellow");<br />var_dump(array_diff_uassoc($array1, $array2, "key_compare_func"));<br />var_dump(array_diff_uassoc($array3, $array4, "key_compare_func"));<br />
结果:array(3) { ["b"]=> string(5) "brown" ["c"]=> string(4) "blue" [0]=> string(3) "red" }
array(2) { ["b"]=> string(5) "brown" ["c"]=> string(4) "blue" }
8、使用键名比较计算数组的差集,array_diff_key
用法和array_diff一样,这个是通过键名来求差集,更重要的是没有什么回调函数
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);<br />$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);<br />var_dump(array_diff_key($array1, $array2));
结果:array(2) { ["red"]=> int(2) ["purple"]=> int(4) }
9、带索引检查计算数组的差集 array_diff_assoc
用法和array_diff,array_diff_key一样,在比较时候加入了索引
$array1 = array ("a" => "green", "b" => "brown", "c" => "blue", "red");<br />$array2 = array ("a" => "green", "red", "yellow");<br />$array3 = array ("a" => "green", "yellow", "red");<br />var_dump(array_diff_assoc($array1, $array2));<br />var_dump(array_diff_assoc($array1, $array3));
结果:array(2) { ["b"]=> string(5) "brown" ["c"]=> string(4) "blue" }
array(3) { ["b"]=> string(5) "brown" ["c"]=> string(4) "blue" [0]=> string(3) "red" }
用法:array_fill($start_index(int),$num(int),$value)用 value 参数的值将一个数组填充 num 个条目,键名start_index 参数指定的开始。注意 num 必须是一个大于零的数值
var_dump(array_fill(5, 6, 'banana'));<br />
结果:array(4) { [5]=> string(6) "banana" [6]=> string(6) "banana" [7]=> string(6) "banana" [8]=> string(6) "banana" }
11、使用指定的键和值填充数组--array_fill_keys
array_fill_keys($input(array),$value(string))使用 value 参数的值作为值,使用 keys 数组的值作为键来填充一个数组。
$keys = array('foo', 5, 10, 'bar'=>'1');<br />var_dump(array_fill_keys($keys, 'banana'));
结果:array(4) { ["foo"]=> string(6) "banana" [5]=> string(6) "banana" [10]=> string(6) "banana" [1]=> string(6) "banana" }
array_filter($input(array),$callback(function)),$input中的值会传给回调函数,通过回调函数进行判断,再返回给结果数组中。
function odd($var){<br /> return($var % 2 == 1);<br />}<br />function even($var){<br /> return($var % 2 == 0);<br />}<br />$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);<br />$array2 = array(6, 7, 8, 9, 10, 11, 12);<br />var_dump(array_filter($array1, "odd"));<br />var_dump(array_filter($array2, "even"));
结果:array(3) { ["a"]=> int(1) ["c"]=> int(3) ["e"]=> int(5) }
array(4) { [0]=> int(6) [2]=> int(8) [4]=> int(10) [6]=> int(12) }
用法:输入一个数组,交换键名很键值的位置。键名需要是合法的如:string或者int型,
如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转。如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。array_flip() 如果失败返回 FALSE。
$array = array("javascript","f"=>"redis","g"=>"R","h"=>"mongodb");<br />var_dump(array_flip($array));
结果:array(4) { ["javascript"]=> int(0) ["redis"]=> string(1) "f" ["R"]=> string(1) "g" ["mongodb"]=> string(1) "h" }
用法:array_intersect(array1,array2...),就是计算多个数组的交集,再以数组返回回来
$array1 = array("a" => "green", "red", "blue");<br />$array2 = array("b" => "green", "yellow", "red");<br />var_dump(array_intersect($array1, $array2));
结果:array(2) { ["a"]=> string(5) "green" [0]=> string(3) "red" }
15、用回调函数比较键名来计算数组的交集-array_intersect_ukey
array_intersect_ukey(array1,array2,....,function)通过回调函数来计算数组的交集
此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
function key_compare_func($key1, $key2){<br /> if ($key1 == $key2)<br /> return 0;<br /> else if ($key1 > $key2)<br /> return 1;<br /> else<br /> return -1;<br />}<br />$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);<br />$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);<br />var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
结果:array(2) { ["blue"]=> int(1) ["green"]=> int(3) }
16、带索引检查计算数组的交集,用回调函数比较索引-array_intersect_uassoc
array_intersect_uassoc(array1,array2,....,function)返回的数组中包含了所有在 array1 中也同时出现在所有其它参数数组中的值
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");<br />$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");<br />print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
结果:Array ( [b] => brown )
17、使用键名比较计算数组的交集--array_intersect_key
用法:array_intersect_key(array1,array2,....)返回的数组包含了所有出现在array1 中并同时出现在所有其它参数数组中的键名的值。
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);<br />$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);<br />var_dump(array_intersect_key($array1, $array2));<br />
结果:array(2) { ["blue"]=> int(1) ["green"]=> int(3) }
18、带索引检查计算数组的交集-array_intersect_assoc
用法:和array_diff_assoc一样,只不过不同的是一个求交集,一个求并集
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");<br />$array2 = array("a" => "green", "yellow", "red");<br />$array3 = array("a" => "green", "red", "b" => "brown", "c" => "blue");<br />$array4 = array("a" => "green", "red", "yellow");<br />var_dump(array_intersect_assoc($array1, $array2));<br />var_dump(array_intersect_assoc($array3, $array4));<br />
结果:
array(1) { ["a"]=> string(5) "green" } array(2) { ["a"]=> string(5) "green" [0]=> string(3) "red" }