在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
数组函数:
array_change_key_case() 将
input 数组中的所有键名改为全小写或大写。改变是根据后一个选项 case 参数来进行的。本函数不改变数字索引。参数:input 需要操作的数组。case 可以在这里用两个常量,CASE_UPPER 或 CASE_LOWER (默认值)。返回值:返回一个键全是小写或者全是大写的数组;如果输入值(input )不是一个数组,那么返回FALSE 例子: <?php 以上例程会输出: Array ( [FIRST] => 1 [SECOND] => 4 )
将一个数组分割成多个数组,其中每个数组的单元数目由
size 决定。最后一个数组的单元数目可能会少于 size 个。参数:input 需要操作的数组size 每个数组的单元数目preserve_keys 设为 TRUE ,可以使 PHP 保留输入数组中原来的键名。如果你指定了 FALSE ,那每个结果数组将用从零开始的新数字索引。默认值是 FALSE 。返回值:得到的数组是一个多维数组中的单元,其索引从零开始,每一维包含了 size 个元素。
例子:
<?php 以上例程会输出: Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [0] => c [1] => d ) [2] => Array ( [0] => e ) )
array_column() 返回
input 数组中键值为column_key 的列, 如果指定了可选参数index_key ,那么input 数组中的这一列的值将作为返回数组中对应值的键。参数:input 需要取出数组列的多维数组(或结果集)column_key 需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键。 也可以是NULL ,此时将返回整个数组(配合index_key 参数来重置数组键的时候,非常管用)index_key 作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。返回值:从多维数组中返回单列数组例子:
<?php
$records = array( array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ) ); $first_names = array_column($records, 'first_name'); print_r($first_names); ?> 以上例程会输出:
Array([0] => John [1] => Sally) $last_names = array_column($records, 'last_name', 'id'); 结果:Array([2135] => Doe [3245] => Smith)
返回一个 array,用来自
keys 数组的值作为键名,来自 values 数组的值作为相应的值。参数:例子:
<?php
$a = array('green', 'red', 'yellow'); $b = array('avocado', 'apple', 'banana'); $c = array_combine($a, $b); print_r($c); ?> 以上例程会输出:
Array ( [green] => avocado [red] => apple [yellow] => banana )
array_count_values() 返回一个数组,该数组用
input 数组中的值作为键名,该值在 input 数组中出现的次数作为值。参数:input 统计这个数组的值返回值:返回一个关联数组,用 input 数组中的值作为键名,该值在数组中出现的次数作为值。例子:
<?php
$array = array(1, "hello", 1, "world", "hello"); print_r(array_count_values($array)); ?> 以上例程会输出:
Array ( [1] => 2 [hello] => 2 [world] => 1 )
array_diff_assoc() 返回一个数组,该数组包括了所有在
array1 中但是不在任何其它参数数组中的值。注意和array_diff() 不同的是键名也用于比较。参数:array1 The array to compare fromarray2 An array to compare against... 返回值:Returns an array containing all the values from array1 that are not present in any of the other arrays.例子:
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "yellow", "red"); $result = array_diff_assoc($array1, $array2);//键值对 0 => "red" 出现在输出中是因为第二个参数中的 "red" 的键名是 1。 print_r($result); ?> 以上例程会输出:
Array ( [b] => brown [c] => blue [0] => red )
根据
array1 中的键名和 array2 进行比较,返回不同键名的项。 本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。参数:array1 从这个数组进行比较array2 针对此数组进行比较... 返回值:array_diff_key() 返回一个数组,该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值。例子:
<?php
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_diff_key($array1, $array2)); ?> 以上例程会输出:
array(2) { ["red"]=> int(2) ["purple"]=> int(4) }
对比了 array1 待比较的数组array2 和这个数组进行比较...
返回值:返回一个 array,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。
例子:
<?php
function key_compare_func($a, $b){ if ($a === $b) { return 0; } return ($a > $b)? 1:-1; } $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "yellow", "red"); $result = array_diff_uassoc($array1, $array2, "key_compare_func"); print_r($result); ?> 以上例程会输出:
Array ( [b] => brown [c] => blue [0] => red )
array_diff_ukey() 返回一个数组,该数组包括了所有出现在
array1 中但是未出现在任何其它参数数组中的键名的值。注意关联关系保留不变。本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。参数:array1 The array to compare fromarray2 An array to compare against... key_compare_func 在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。
返回值:Returns an array containing all the entries from array1 that are not present in any of the other arrays.
例子:
<?php
function key_compare_func($key1, $key2){ if ($key1 == $key2) return 0; else if ($key1 > $key2) return 1; else return -1; } $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_diff_ukey($array1, $array2, 'key_compare_func')); ?> 以上例程会输出:
array(2) { ["red"]=> int(2) ["purple"]=> int(4) }
对比返回在
array1 中但是不在 array2 及任何其它参数数组中的值。参数:array1 要被对比的数组array2 和这个数组进行比较... 返回值:返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。例子:<?php$array1 = array("a" => "green", "red", "blue", "red"); $array2 = array("b" => "green", "yellow", "red"); $result = array_diff($array1, $array2); print_r($result); ?> 以上例程会输出: Array ( [1] => blue )
使用
value 参数的值作为值,使用 keys 数组的值作为键来填充一个数组。参数:keys 使用该数组的值作为键。非法值将被转换为字符串。value
填充使用的值。 返回值:返回填充后的数组。例子:
<?php
$keys = array('foo', 5, 10, 'bar'); $a = array_fill_keys($keys, 'banana'); print_r($a); ?> 以上例程会输出:Array ( [foo] => banana [5] => banana [10] => banana [bar] => banana )
array_fill() 用
value 参数的值将一个数组填充 num 个条目,键名由 start_index 参数指定的开始。参数:start_index 返回的数组的第一个索引值。
如果 num 插入元素的数量。 必须大于 0。value 用来填充的值。返回值:返回填充后的数组。
例子:
<?php
$a = array_fill(5, 6, 'banana'); $b = array_fill(-2, 4, 'pear'); print_r($a); print_r($b); ?> 以上例程会输出:Array ( [5] => banana [6] => banana [7] => banana [8] => banana [9] => banana [10] => banana ) Array ( [-2] => pear [0] => pear [1] => pear [2] => pear )
依次将
input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE ,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。参数:input 要循环的数组callback 使用的回调函数
如果没有提供 例子:
<?php
function odd($var){ // returns whether the input integer is odd return($var & 1); } function even($var){ // returns whether the input integer is even return(!($var & 1)); } $array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); $array2 = array(6, 7, 8, 9, 10, 11, 12); echo "Odd :\n"; print_r(array_filter($array1, "odd")); echo "Even:\n"; print_r(array_filter($array2, "even")); ?> 以上例程会输出:Odd : Array ( [a] => 1 [c] => 3 [e] => 5 ) Even: Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 )
无
callback: <?php
$entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => null, 4 => '' ); print_r(array_filter($entry)); ?> 结果:Array ( [0] => foo [2] => -1 )
array_flip() 返回一个反转后的 array,例如 注意 如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。参数: trans 要交换键/值对的数组。
返回值:成功时返回交换后的数组,如果失败返回 NULL 。
例子:
<?php
$trans = array("a" => 1, "b" => 1, "c" => 2); $trans = array_flip($trans); print_r($trans); ?> 以上例程会输出:Array ( [1] => b [2] => c )
array_intersect_assoc() 返回一个数组,该数组包含了所有在
array1 中也同时出现在所有其它参数数组中的值。注意和 array_intersect() 不同的是键名也用于比较。参数:array1 The array with master values to check.array2 An array to compare values against.array
要对比的数组变量的列表。 返回值:返回一个数组,该数组包含了所有在array1 中也同时出现在所有其它参数数组中的值。
例子:
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "b" => "yellow", "blue", "red"); $result_array = array_intersect_assoc($array1, $array2); print_r($result_array); ?> 以上例程会输出:Array ( [a] => green )
array_intersect_key() 返回一个数组,该数组包含了所有出现在
array1 中并同时出现在所有其它参数数组中的键名的值。参数:array1
The array with master keys to check. array2
An array to compare keys against. array
A variable list of arrays to compare. 返回值:Returns an associative array containing all the entries ofarray1 which have keys that are present in all arguments.
例子:
<?php
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_intersect_key($array1, $array2)); ?> 以上例程会输出:array(2) { ["blue"]=> int(1) ["green"]=> int(3) }
array_intersect_uassoc() 返回一个数组,该数组包含了所有在
array1 中也同时出现在所有其它参数数组中的值。注意和 array_intersect() 不同的是键名也用于比较。参数:array1
Initial array for comparison of the arrays. array2
First array to compare keys against. array Variable list of array arguments to compare values against.key_compare_func 在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。
int callback ( mixed array1 whose values exist in all of the arguments.
例子:
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red"); print_r(array_intersect_uassoc($array1, $array2, "strcasecmp")); ?> 以上例程会输出:Array ( [b] => brown )
array_intersect_ukey() 返回一个数组,该数组包含了所有出现在
array1 中并同时出现在所有其它参数数组中的键名的值。参数:array1
Initial array for comparison of the arrays. array2
First array to compare keys against. array Variable list of array arguments to compare keys against.key_compare_func 在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。
返回值:Returns the values of array1 whose keys exist in all the arguments.
例子:
<?php
function key_compare_func($key1, $key2){ if ($key1 == $key2) return 0; else if ($key1 > $key2) return 1; else return -1; } $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func')); ?> 以上例程会输出:array(2) { ["blue"]=> int(1) ["green"]=> int(3) }
array_intersect() 返回一个数组,该数组包含了所有在
array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。参数:array1
The array with master values to check. array2
An array to compare values against. array
A variable list of arrays to compare. 返回值:返回一个数组,该数组包含了所有在array1 中也同时出现在所有其它参数数组中的值。
例子:
<?php
$array1 = array("a" => "green", "red", "blue"); $array2 = array("b" => "green", "yellow", "red"); $result = array_intersect($array1, $array2); print_r($result); ?> 以上例程会输出:Array ( [a] => green [0] => red )
array_key_exists() 在给定的
key 存在于数组中时返回 TRUE 。key 可以是任何能作为数组索引的值。array_key_exists() 也可用于对象。参数:key
要检查的键。 search
一个数组,包含待检查的键。 返回值:成功时返回TRUE , 或者在失败时返回 FALSE 。
例子:
array_key_exists() 与 isset() 的对比 isset() 对于数组中为
// returns false isset($search_array['first']); ?>
array_keys() 返回 如果指定可选参数
array_map() 返回一个数组,该数组包含了
arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。参数:callback
对每个数组的每个元素作用的回调函数。 arr1
将被回调函数( array
将被回调函数( arr1 )里面的每个元素经过回调函数(callback )处理了的。
例子:
<?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 )
array_merge_recursive() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。参数:
array1 要合并的初始数组。
...
返回值:一个结果数组,其中的值合并自附加的参数。 例子:
<?php
$ar1 = array("color" => array("favorite" => "red"), 5); $ar2 = array(10, "color" => array("favorite" => "green", "blue")); $result = array_merge_recursive($ar1, $ar2); print_r($result); ?> 以上例程会输出:
Array ( [color] => Array ( [favorite] => Array ( [0] => red [1] => green ) [0] => blue ) [0] => 5 [1] => 10 )
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。参数:
array1 Initial array to merge.
...
返回值:返回结果数组。 例子:
<?php
$array1 = array("color" => "red", 2, 4); $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); $result = array_merge($array1, $array2); print_r($result); ?> 以上例程会输出:
Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4 )
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。 关联(string)键名保持不变,但数字键名会被重新索引。 排序顺序标志:
排序类型标志:
每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值
arr 要排序的一个
全部评论
专题导读
热门推荐
热门话题
阅读排行榜
|
请发表评论