热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php基础知识总结(1)数组array,基础知识array

php教程|php手册php,基础知识,数组,array,php,基础知识,数组,array,排序,asort,正向,保持php教程-php手册php基础知识总结(1)数组arra

php教程|php手册php基础知识总结(1)数组array,基础知识array
php,基础知识,数组,array,php,基础知识,数组,array,排序,asort,正向,保持
php教程-php手册
php基础知识总结(1)数组array,基础知识array
娱乐城源码建站,ubuntu系统正向控制,爬虫类素描,php语言技术工程师学习外包,seo最佳时间lzw
A、排序
1、asort — 正向排序,保持索引关系
2、arsort –逆向排序,保持索引关系
3、sort — 从最低到最高排序
4、ksort –按照键名排序
5、krsort –按照键名逆向排序
6、rsort — 逆向排序(最高到最低),删除原有的键名,赋予新的键名【字母比数字高】
(1)纯英文:$fruits = array(“d” => “lemon”, “a” => “orange”, “b” => “banana”, “c” => “apple”);
asort($fruits);//Array ( [c] => apple [b] => banana [d] => lemon [a] => orange )
(2)纯数字:$fruits = array(“d” => “341”, “a” => “524”, “b” => “75”, “c” => “657”);
asort($fruits);//Array ( [b] => 75 [d] => 341 [a] => 524 [c] => 657 )
(3)混合:$fruits = array(“d” => “daf”, “a” => “fasd”, “b” => “234”, “c” => “657”);
asort($fruits);//Array ( [b] => 234 [c] => 657 [d] => daf [a] => fasd ) 先数字后字母
PHP视屏源码,ubuntu 32lib,优酷爬虫接口,JS转化PHP,丝瓜 seo 1.3.0lzw
7、natsort –用“自然排序”算法排序
8、natcasesort –用“自然排序”算法进行排序,不区分大小写
9、usort — 使用用户自定义的比较函数对数组中的值进行排序,删除原有的键名
10、uasort –使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
11、uksort –使用用户自定义的比较函数对数组中的键名进行排序
衣服个性定制 源码,vscode 函数预览,mint和ubuntu操作系统,tomcat老是退出,打开sqlite.db,wordpress产品b2b插件,前端项目框架开发,爬虫视频怎么处理的,php购物车实现,贵阳seo urkeji,人才网网站模板,网页模板 2017,专访文章模板,php手机建站程序lzw
12、array_multisort — 对多个数组或多维数组进行排序,关联键名保持不变,但数字键名会被重新索引。第一个参数必须是一个数组
13、array_reverse — 返回一个单元顺序相反的数组
$input = array(“php”,array(“green”, “red”));
$result = array_reverse($input);//Array([0] => Array([0] => green,[1] => red),[1] => php)
$res = array_reverse($input, TRUE);//true表示保留原来的键名

B、key和value
1、key — 返回数组中当前单元的键名。

2、array_key_exists — 检查给定的键名或索引是否存在于数组中,也可用于对象
$search_array = array(‘first’ => 1, ‘second’ => 4);
array_key_exists(‘first’, $search_array));//存在时返回 TRUE

3、array_keys — 返回数组中所有的键名
$array = array(0 => 100, “color” => “red”);
print_r(array_keys($array));//Array([0] => 0,[1] => color)

4、array_values — 返回数组中所有的值
$array = array(“size” => “XL”, “color” => “gold”);
print_r(array_values($array));//Array([0] => XL [1] => gold)

5、array_count_values — 统计数组中所有的值出现的次数
$array = array(1, “hello”, 1, “world”, “hello”);
print_r(array_count_values ($array));//Array([1] =>2,[hello] =>2,[world] => 1)

6、array_flip — 交换数组中的键和值,如果同一个值出现多次,只取最后一个,其它的都丢失。
$trans = array(“a” => 1, “b” => 1, “c” => 2);
$trans = array_flip($trans);//Array([1] => b,[2] => c)

7、array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
$array = array(0 => ‘blue’, 1 => ‘red’, 2 => ‘green’, 3 => ‘red’);
$key = array_search(‘green’, $array); // $key = 2;
$key = array_search(‘red’, $array); // $key = 1;

8、array_sum — 计算数组中所有值的和
$a = array(2, 4, 6, 8);
echo “sum(a) = “.array_sum($a);//20

C、交集和差集
1、array_diff — 计算数组的差集,返回数组,键名不用于比较
$array1 = array(“a” => “green”, “red”, “blue”, “red”);
$array2 = array(“b” => “green”, “yellow”, “red”);
$result = array_diff_assoc($array1, $array2);//Array([1] => blue)

2、array_diff_assoc — 带索引检查计算数组的差集,返回数组,键名也用于比较,可多个数组比较
$array1 = array (“a” => “green”, “b” => “brown”, “c” => “blue”, “red”);
$array2 = array (“a” => “green”, “yellow”, “red”);
$result = array_diff_assoc($array1, $array2);//Array([b] =>brown,[c] =>blue,[0] =>red)

3、array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
function func($a, $b){if ($a === $b) {return 0;}}
$array1 = array(“a” => “green”, “b” => “brown”, “c” => “blue”, “red”);
$array2 = array(“a” => “green”, “yellow”, “red”);
$result = array_diff_uassoc($array1, $array2, “func”);//Array([b] =>brown,[c] =>blue,[0] =>red)

4、array_intersect — 计算数组的交集,键名不用于比较
$array1 = array(“a” => “green”, “red”, “blue”);
$array2 = array(“b” => “green”, “yellow”, “red”);
$result = array_intersect($array1, $array2);//Array([a] =>green,[0] =>red)

5、array_intersect_assoc — 带索引检查计算数组的交集,键名也用于比较
$array1 = array(“a” => “green”, “b” => “brown”, “c” => “blue”, “red”);
$array2 = array(“a” => “green”, “yellow”, “red”);
$result_array = array_intersect_assoc($array1, $array2);//Array([a] => green)

D、指针操作
1、current — 返回数组中的当前单元
2、reset — 将数组的内部指针指向第一个单元
3、end — 将数组的内部指针指向最后一个单元
4、next — 将数组中的内部指针向前移动一位
5、prev — 将数组的内部指针倒回一位
$transport = array(‘foot’, ‘bike’, ‘car’, ‘plane’);
$mode = current($transport); // $mode = ‘foot’;
$mode = next($transport); // $mode = ‘bike’;
$mode = next($transport); // $mode = ‘car’;
$mode = prev($transport); // $mode = ‘bike’;
6、each — 返回数组中当前的键/值对并将数组指针向前移动一步
返回为四个单元的数组,键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。
$foo = array(“bob”, “fred”, “jussi”, “jouni”, “egon”, “marliese”);
$bar = each($foo);//Array{[1] => bob[value] => bob [0] => 0 [key] => 0}

E、合并
1、array_merge_recursive — 将一个或多个数组合并,如果数组中有相同键名,后一个值将不会覆盖原来的值,而是附加到后面。
$ar1 = array(“color” => array(“favorite” => “red”), 5);
$ar2 = array(10, “color” => array(“favorite” => “green”, “blue”));
$result = array_merge_recursive($ar1, $ar2);
//Array([color] => Array([favorite] => Array([0] =>red,[1] =>green),[0] => blue),[0] => 5,[1] => 10)

2、array_merge — 合并一个或多个数组,如果字符串键名后面的将覆盖前一个,但数字键名相同,后面的值将不会覆盖原来的值,而是附加到后面。
$array1 = array(“color” => “red”, 2, 4);
$array2 = array(“a”, “b”, “color” => “green”, “shape” => “trapezoid”, 4);
$result = array_merge($array1, $array2);
//Array([color] =>green,[0] =>2,[1] =>4,[2] =>a,[3] =>b,[shape] =>trapezoid,[4] => 4)

3、array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
$a = array(‘green’, ‘red’, ‘yellow’);
$b = array(‘avocado’, ‘apple’, ‘banana’);
$c = array_combine($a, $b);//Array([green]=>avocado,[red]=> apple,[yellow] =>banana)

F、取值
1、array_slice(array,offset[,length[,keys]]) — 从数组中取出一段
offset非负,从数组中的此偏移量开始,为负,则从数组中距离末端这么远的地方开始
length正,数组中将有length个元素,为负将终止在距离数组末端这么远的地方。省略则从offset开始一直到数组的末端。
keys 设为 TRUE 保留键名,否则重置键名

2、array_rand(input,[num_req]) –从数组中随机取出一个或多个单元,num_req指明要取多少个,默认为 1。
$input = array(“Neo”, “Morpheus”, “Trinity”, “Cypher”, “Tank”);
$rand_keys = array_rand($input, 2);

G、去值和替代
1、array_splice (array,offset[,length[,replacement]])– 把数组中的一部分去掉并用其它值取代 ,数字键名不被保留
$input = array(“red”, “green”, “blue”, “yellow”);
array_splice($input, 2);// $input is now array(“red”, “green”)

$input = array(“red”, “green”, “blue”, “yellow”);
array_splice($input, 1, -1);// $input is now array(“red”, “yellow”)

$input = array(“red”, “green”, “blue”, “yellow”);
array_splice($input, 1, count($input), “orange”);// $input is now array(“red”, “orange”)

$input = array(“red”, “green”, “blue”, “yellow”);
array_splice($input, -1, 1, array(“black”, “maroon”));// $input is now array(“red”, “green”,”blue”, “black”, “maroon”)

$input = array(“red”, “green”, “blue”, “yellow”);
array_splice($input, 3, 0, “purple”);// $input is now array(“red”, “green”,”blue”, “purple”, “yellow”);

offset:为正,从数组中该值指定的偏移量开始移除,为负,则从末尾倒数该值指定的偏移量开始移除
length:省略则移除数组中从 offset 到结尾的所有部分。为正则移除这么多单元。为负则移除从offset到数组末尾倒数 length 为止中间所有的单元
如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代

2、array_unique — 移除数组中重复的值,
$input = array(“a” => “green”, “red”, “b” => “green”, “blue”, “red”);
$result = array_unique($input);//Array([a] => green,0] => red,[1] => blue)

$input = array(4, “4”, “3”, 4, 3, “3”);
$result = array_unique($input);//array(2) { [0]=> int(4) [2]=> string(1) “3” }

3、array_pop — 将数组最后一个单元弹出(出栈),数组的长度减一,使用本函数后会重置数组指针。
$stack = array(“orange”, “banana”, “apple”, “raspberry”);
$fruit = array_pop($stack);
print_r($stack);//Array([0] => orange,[1] => banana,[2] => apple)
print_r($fruit);//Array([0] => raspberry)

4、array_shift — 将数组开头的单元移出数组,数字键名将改为从零开始计数,文字键名将不变
$stack = array(“orange”, “banana”, “apple”, “raspberry”);
$fruit = array_pop($stack);
print_r($stack);//Array([0] => banana,[1] => apple,[2] => raspberry)
print_r($fruit);//Array([0] => orange)

H、插入和填充
1、array_pad(input,pad_size,pad_value ) — 用值将数组填补到指定长度
如果 pad_size 为正,则数组被填补到右侧,如果为负则从左侧开始填补。
$input = array(12, 10, 9);
$result = array_pad($input, 5, 0);// result is array(12, 10, 9, 0, 0)
$result = array_pad($input, -7, -1);// result is array(-1, -1, -1, -1, 12, 10, 9)
$result = array_pad($input, 2, “noop”);// not padded

2、array_push — 将一个或多个单元压入数组的末尾(入栈)
$stack = array(“orange”, “banana”);
array_push($stack, “apple”);//Array([0] => orange,[1] => banana,[2] => apple)

3、array_unshift — 在数组开头插入一个或多个单元,数值键名重新计数,文字键名保持不变。
$queue = array(“orange”, “banana”);
array_unshift($queue, “apple”);//Array([0] => apple[1] => raspberry[2] => orange[3] => banana)

4、array_fill(start_index,num,value )– 用给定的值填充数组
num: 填充的条目 start_index:指定键名的开始 value:填充的值
$a = array_fill(5, 4, ‘banana’);//Array([5]=>banana,[6]=>banana,[7]=>banana,[8]=>banana)

J、回调函数
1、array_filter — 用回调函数过滤数组中的单元
function odd($var){return($var % 2 == 1);}
function even($var){return($var % 2 == 0);}
$array1 = array(“a”=>1, “b”=>2, “c”=>3, “d”=>4, “e”=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

print_r(array_filter($array1, “odd”)); //Array([a] =>1,[c] =>3,[e] => 5)
print_r(array_filter($array2, “even”)); //Array([0] =>6,[2] =>8,[4] =>10,[6] =>12)

2、array_map — 将回调函数作用到给定数组的单元上
function cube($n){return($n * $n * $n);}
$a = array(1, 2, 3, 4, 5);
$b = array_map(“cube”, $a);//Array([0] =>1,[1] =>8,[2] =>27,[3] =>64,[4] =>125)

3、array_reduce — 用回调函数迭代地将数组简化为单一的值
function rsum($v, $w){$v += $w; return $v;}
function rmul($v, $w){$v *= $w;return $v;}
$a = array(1, 2, 3, 4, 5);
$x = array();
$b = array_reduce($a, “rsum”); //15=1+2=3+4+5
$c = array_reduce($a, “rmul”, 10);//1200(= 10*1*2*3*4*5)
$d = array_reduce($x, “rsum”, 1);//1

K、其他
1、array_chunk — 将一个数组分割成多个
$input_array = array(‘a’, ‘b’, ‘c’, ‘d’, ‘e’);
print_r(array_chunk($input_array, 2)); //默认值是 FALSE,每个结果数组将用从零开始的新数字索引
print_r(array_chunk($input_array, 2, true));//TRUE表示数组中原来的键名

2、shuffle — 打乱(随机排列单元的顺序)一个数组。 删除原有的键名,赋予新的键名

3、in_array — 检查数组中是否存在某个值,区分大小写

4、数组和json互换
json_encode()就是将PHP数组转换成Json。
json_decode()就是将Json转换成PHP数组


PHP中定义一个数组如下: $arr=array(); 这个数组的内容是什样的?

这个数组是空的,你可以用print_r();看看结果:
print_r($arr);
 

php中$array[]是什?$array是一个数组

啥意思 不太明白 自己都说了 $array 是个数组 怎么还问?
赋值的话
$array[] = “1”;
$array[] = “2”;
这样就可以,
删除的话这样 unset($array[1]);
 


推荐阅读
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
author-avatar
宾利Bentley乀Motors
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有