`
zccst
  • 浏览: 3292138 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP之数组

    博客分类:
  • 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 - 默认值。不依赖类型。


3,array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] )
根据 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
)
2,判断是否为数组
bool is_array($arr)//如果 var 是 array,则返回 TRUE,否则返回 FALSE。类似的有is_float()、is_int()、is_integer()、is_string() 和 is_object()
//或
(array)$arr

1,array_fill()填充数组
<?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。


基础:
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 按键名排序

互转函数
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) 函数把数组元素组合为一个字符串
分享到:
评论

相关推荐

    PHP的扩展, 可以跟PHP的数组一比

    PHP的扩展, 可以跟PHP的数组,因为PHP的数组是使用哈希表的, 所以内存使用比较大, 所以我用红黑树来写了一个dict的结构, 内存使用比PHP的数组少一半以上, 查询速度基本上跟PHP的数组相当, 不过插入速度稍微慢PHP的...

    PHP数组分页操作,PHP数组

    使用php数组分页实现方法,php数组操作,PHP分页

    PHP之数组学习

    PHP的数组函数众多,下面是我学习的小结,借此记之,便于以后鉴之…… 一、数组定义: 数组的定义使用 array()方式定义,可以定义空数组: 复制代码 代码如下: &lt;?php $number = array(1,3,5,7,9); //定义空数组...

    php判断是几维数组

    php判断一个数组是几维数组,一维二维多维一一判断

    php数组生成树

    php数组无限制生成树源代码,无限制递归子类源代码

    PHP从数组中随机选取几个值组成新的字符串(输出字符串非数组)

    这个实现起来虽然不难,但是涉及到PHP中几个不常用的函数模块,对于很多PHP新手来说还确实是一个难题,今天就给大家分享一个实例,用4行代码就可以实现让PHP随机从数组中选取几个值,然后拼接成字符串并输出。...

    php 多维数组排序

    php 多维数组排序,应用php的多维数组排序函数

    php数组操作函数

    array_change_key_case -- 返回字符串键名全为小写或大写的数组 array_chunk -- 将一个数组分割成多个 array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 array_count_values -- ...

    深入理解PHP之数组(遍历顺序)Laruence原创

    经常会有人问我, PHP的数组, 如果用foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢? 比如: 复制代码 代码如下: &lt;?php $arr[‘laruence’] = ‘huixinchen’; $arr[‘yahoo’] = 2007; $arr[‘baidu’] =...

    php 笛卡尔积二维数组矩阵算法

    php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵...

    php数组分页 数组分页 搜索整站

    php数组分页 数组分页 搜索整站,合适对整站搜索后,分页

    php数组遍历的类

    php数组遍历的类

    PHP教程ppt数组

    php数组课件

    PHP数组基础知识

    最详实的PHP数组基础知识,大家多多支持一下哦。亲爱的网友。

    js解析php数组对象数组对象数组对象.docx

    js解析php数组对象数组对象数组对象.docx

    PHP数组概述

    PHP数组概述

    php的数组操作类.zip

    分享一个php的数组操作类,从数组中删除空白的元素(包括只有空白字符的元素),从一个二维数组中返回指定键的所有值,将一个二维数组转换为 HashMap,并返回结果。

    PHP二维数组形成XML内容形式

    用PHP将二维数组拼接成xml内容形式,形成的标签可以根据自己的需要进行修改

    PHP数组的使用

    PHP数组的使用实训内容一 创建数组teacher,内容为(李芳,35,讲师) 读取teacher数组,输出为:

Global site tag (gtag.js) - Google Analytics