您的位置:首页 > 编程语言 > PHP开发

PHP 数组处理的函数

2016-07-20 00:00 337 查看
array_unshift ——在数组开头插入一个或多个单元

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

将传入的单元插入到array数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。

返回array数组新的单元数目。

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
?>

以上例程会输出:

Array
(
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)


array_shift ——将数组开头的单元移除出数组

mixed array_shift( array &$array )

将array的第一个单元移除并作为结果返回,将array的长度减一并将所有其他单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。

返回移除的值,如果array为空或不是一个数组则返回NULL。

数组相加:$a= $b +$c

<?php
$someArray=array(224=>'someword1', 228=>'someword2', 102=>'someword3', 544=>'someword3',95=>'someword4');

$someArray=array(100=>'Test Element 1 ',255=>'Test Element 2')+$someArray;
?>

now the array looks as follows:

array(
100=>'Test Element 1 ',
255=>'Test Element 2'
224=>'someword1',
228=>'someword2',
102=>'someword3',
544=>'someword3',
95=>'someword4'
);

<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
$result = $array1 + $array2;
var_dump($result);
?>

The keys from the first array will be preserved. If an array key exists in both arrays, then the element from the first array will be used and the matching key's element from the second array will be ignored.

array(5) {
[0]=>
string(6) "zero_a"
[2]=>
string(5) "two_a"
[3]=>
string(7) "three_a"
[1]=>
string(5) "one_b"
[4]=>
string(6) "four_b"
}


array_push ——将一个或多个单元压入数组的末尾(入栈)

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

将array当成一个栈,并将传入的变量压入array的末尾。array的长度将根据入栈变量的数目增加。

返回的是新数组的元素个数。

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

以上例程会输出:

Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => raspberry
)


array_pop ——将数组最后一个单元弹出(出栈)

mixed array_pop( array &$array )

弹出并返回array数组的最后一个单元,并将数组array的长度减一。

返回数组的最后一个值。 如果array为空(或不是数组),将返回NULL。

array_

1

1

1

implode ——将一个一维数组的值转化为字符串

string implode( string $glue , array $pieces)

string implode( array $pieces)

用glue将一维数组的值连接为一个字符串

返回一个字符串,其内容为由glue分割开的数组的值。

<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

// Empty string when using an empty array:
var_dump(implode('hello', array())); // string(0) ""

?>


explode ——使用一个字符串分割另一个字符串

array explode( string $delimiter , string $string [, int $limit ])

limit参数

正数返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分
0会被当做1
负数返回除了最后的-limit个元素外的所有元素。
此函数返回有字符串组成的数组,每个元素都是string的一个子串,它们被字符串delimiter作为边界点分割出来

asort ——对数组进行排序并保持索引关系

bool asort( array &$array [, int $sort_flags = SORT_REGULAR)

本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。

成功时返回true,失败返回false。

sort ——对数组排序

bool sort( array &$array [, int $sort_flags = SORT_REGULAR)

sort_flags参数

SORT_REGULAR正常比较单元(不改变类型)
SORT_NUMERIC单元被作为数字来比较
SORT_STIRNG单元被作为字符串来比较
SORT_LOCALE_STRING根据当前的区域(locale)设置来把单元当做字符串比较
SORT_NATURAL对每个单元以“自然的顺序”对字符串进行排序
SORT_FLAG_CASE能够与SORT_STRING或SORT_NAUTRAL合并,不区分大小写。
成功true,失败false。

<?php
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}
?>

以上例程会输出:

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange


全部的排序函数之间的对比

函数名依据什么排序是否维持键名排序的顺序相关的函数
asort()valueyeslow to higharsort
arsortvalueyeshigh to lowasort
krsortkeyyeshigh to lowksort
ksortkeyyeslow to higharsort
natcasesortvalueyesnatural,case insensitivenatsort
natsortvalueyesnaturalnatcasesort
rsortvaluenohigh to lowsort
shufflevaluenorandomarray_rand
sortvaluenolow to highrsort
uasortvalueyesuser defineduksort
uksortkeyyesuser defineduasort
usortvaluenouser defineduasort
array_merge ——合并一个或多个数组

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

array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>

别忘了数字键名将会被重新编号!

Array
(
[0] => data
)


array_keys ——返回数组中所有的键名

array array_keys ( array
$input
[, mixed
$search_value
=
NULL
[, bool
$strict
= false ]] )

array_keys() 返回
input
数组中的数字或者字符串的键名。

如果指定了可选参数
search_value
,则只返回该值的键名。否则
input
数组中的所有键名都会被返回。

<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"),
"size"  => array("small", "medium", "large"));
print_r(array_keys($array));
?>

以上例程会输出:

Array
(
[0] => 0
[1] => color
)
Array
(
[0] => 0
[1] => 3
[2] => 4
)
Array
(
[0] => color
[1] => size
)


array_value ——返回数组中所有的值

array array_values ( array
$input
)

array_values() 返回
input
数组中所有的值并给其建立数字索引。

<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>

以上例程会输出:

Array
(
[0] => XL
[1] => gold
)


array_rand ——从数组中随机取出一个或多个单元

mixed array_rand ( array
$input
[, int
$num_req
= 1 ] )

从数组中取出一个或多个随机的单元,并返回随机条目的一个或多个键。

如果你只取出一个, array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>


in_array ——检查数组中是否存在某个值

bool in_array ( mixed
$needle
, array
$haystack
[, bool
$strict
=
FALSE
] )

haystack
中搜索
needle
,如果没有设置
strict
则使用宽松的比较。

如果找到
needle
则返回
TRUE
,否则返回
FALSE


<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>


array_reverve ——返回一个单元顺序相反的数组

array array_reverse ( array
$array
[, bool
$preserve_keys
= false ] )

array_reverse() 接受数组
array
作为输入并返回一个单元为相反顺序的新数组。

<?php
$input  = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
$result_keyed = array_reverse($input, true);
?>

这将使 $result 和 $result_keyed 具有相同的单元,但是注意键名的区别。$result 和 $result_keyed 的打印输出显示分别为:

Array
(
[0] => Array
(
[0] => green
[1] => red
)

[1] => 4
[2] => php
)
Array
(
[2] => Array
(
[0] => green
[1] => red
)

[1] => 4
[0] => php
)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: