PHP之数组

作者:zccst


5,array_merge与“+”的区别
array("a")+array("b")的结果是___
A.array("a","b")
B.array("b","a")
C.array("b")
D.array("a")
答案:D

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

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

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

$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
)

对于“+”

$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);

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"
}

区别:
merge是以后者为准(覆盖前者相同key的值),而“+”是以前者为准。


4,
array_keys($arr[,search_value, strict]) 返回字符串键名(数字或字符串),组成新数组
一般用法:例子见手册

高级用法:
search_value 可选。指定值的索引(键)。
strict 可选。与 value 参数一起使用。可能的值:
true - 根据类型返回带有指定值的键名。
false - 默认值。不依赖类型。


[b]3,array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] )[/b]
根据 offset 和 length 参数所指定的 array 数组中的一段序列。
注意 array_slice() 默认将重置数组的键。自 PHP 5.0.2 起,可以通过将 preserve_keys 设为 TRUE 来改变此行为。

$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"

// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));

输出结果:
Array
(
[0] => c
[1] => d
)
Array
(
[2] => c
[3] => d
)
[b]2,判断是否为数组[/b]

bool is_array($arr)//如果 var 是 array,则返回 TRUE,否则返回 FALSE。类似的有is_float()、is_int()、is_integer()、is_string() 和 is_object()
//或
(array)$arr

[b]1,array_fill()填充数组[/b]
<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>
结果是:
Array
(
[5] => banana
[6] => banana
[7] => banana
[8] => banana
[9] => banana
[10] => banana
)
再比如,为数组赋初值$ret = array_fill(0,7,0);
这样数组$ret就有7个值,且均为0。


[size=large][b]基础:[/b][/size]
1,初始化
$arr = array();

2,增加
array_push()和array_unshift()
普通数组
array_push($fruitArray, "grape", "pineapple", "tomato");

关联数组
$fruitArray = array("a"=>"grape");
array_push($fruitArray, "c"=>"grape");
或$fruitArray['d'] = "tomato";

注:关联索引和pdo中的关联数组不一样。
区别是关联数组的key不能重复,但关联索引的key可重复(实际上必须重复)。

3,删除
array_shift()
array_pop()

unset($capitals['California']); 普通数组、关联数组,二维数组的unset使用。
例如:

//unset使用实例,注unset不改变原来的index值
$data = array();
$i = 0;
foreach ($totalArr as $total){
foreach ($fails as $fail){
if($fail['name'] == $total['name']){
$percent = sprintf( "%1\$.2f", $fail['num'] * 100 / $total['total'] );
array_push($data,array('name'=>$total['name'],'total'=>$total['total'],'num'=>$fail['num'],'percent'=>$percent.'%'));
unset($totalArr[$i]);
}
}
$i++;
}

/********************* 剩下的 **********************/
foreach ($totalArr as $t){
array_push($data,array('name'=>$t['name'],'total'=>$t['total'],'num'=>0,'percent'=>'0.00%'));
}

print json_encode($data);

4,去掉重复值
array_unique()
例如:$a = array("a"=>"cat", "b"=>"cat"); print_r(array_unique($a));
结果是Array([a]=>cat)

5,差异化比较
array_udiff

6,排序
sort
ksort 按键名排序

[size=large][b]互转函数[/b][/size]
1,explode
把字符串转换成数组
例,

<?php
$str = "Hello world. It's a beautiful day.";
print_r (explode(" ",$str));
?>
输出:

Array
(
[0] => Hello
[1] => world.
[2] => It's
[3] => a
[4] => beautiful
[5] => day.
)


2,implode
把数组转换成字符串
implode(separator, array) 函数把数组元素组合为一个字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值