关联数组

isset

bool isset( mixed $val [, mix $...])

变量是否已设置并且非null。多个参数从左到右计算。

判断null

$a=null;var_dump(isset($a));
bool(false)

判断常量是否已设置用defined

定义常量 bool define( string $name, mixed $value [, $is_insensitive = false] )
返回一个常量的值(常量名在变量里)mixed constant( string $name )

tips

不可用于可变函数($bar()函数执行),需自己包装
PHP语言的关键词,语言语法的一部分
普通函数需要被PHP解析器(zend引擎分解成语言结构)

相关语言结构

require ( require_once 是函数)
include ( include_once 是函数)
empty ( !isset($var) || $var == false )
unset
print
echo
list
array 底层结构
die

array_key_exists

bool array_key_exists( mixed $key, array $array)

数组是否有键key。

isset对null值的区别

$arr=['a'=>null];var_dump(array_key_exists('a',$arr),isset($arr['a']));
bool(true) bool(false)

isset()的效率高

in_array

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

检查数组 haystack 中是否存在 needle 值。strict 是否严格检查类型。

区分大小写
当有数字字符串时,会将字符串型数字转为长整形后比较
松散比较下,任何string都等于true

in_array(0, ['ddd',99]) //true string转换为int后比较
in_array('a', [true, 'b']) //ture

array_search

mixed array_search ( mixed $needle, array $haystack[, bool $strict = false])

在数组中搜索指定的值,如果成功返回首个相应的键名。strict 检查类型。

检查结果使用 ===
区分大小写
需要查询所有符合的键名,使用 array_keys 实现

array_keys

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

返回键名。search_value 只返回指定值得所有键名。

array_values

array array_values ( array $array )

返回数组所有值。建立数字索引。

array_flip

array array_flip ( array $array )

交换数组中的键和值。

成功返回 array, 失败返回 null
原数组值需要能作为合法键名(需要是string或integer)。如果类型不对,出警告,且其值/键不会出现在结果里
如果一个值出现多次,只取最后一个键名

array_combine

array array_combine ( array $keys, array $values )

创建一个数组,keys数组为键名,values为值。返回合并的array,如果单元数不同则返回false。

内部指针

数组分段

栈/队列

回调函数

排序

计算

数组生成

其他

原文地址:https://segmentfault.com/a/1190000015566280

php函数之数组的更多相关文章

  1. C++基础——函数指针 函数指针数组

    ==================================声明================================== 本文版权归作者所有. 本文原创,转载必须在正文中显要地注明 ...

  2. typedef 函数指针 数组 std::function

    1.整型指针 typedef int* PINT;或typedef int *PINT; 2.结构体 typedef struct { double data;}DATA,  *PDATA;  //D ...

  3. C++程序设计(关于函数中数组传递的一点心得)

    题目: 10个学生考完期末考试评卷完成后,老师需要划出及格线,要求如下: (1) 及格线是10的倍数: (2) 保证至少有60%的学生及格: (3) 如果所有的学生都高于60分,则及格线为60分:   ...

  4. C#委托与C语言函数指针及函数指针数组

    C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用 ...

  5. PHP中使用数组指针函数操作数组示例

    数组的内部指针是数组内部的组织机制,指向一个数组中的某个元素.默认是指向数组中第一个元素通过移动或改变指针的位置,可以访问数组中的任意元素.对于数组指针的控制PHP提供了以下几个内建函数可以利用. ★ ...

  6. C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组

    #include<stdio.h> #include<stdlib.h> #include<windows.h> /* 举列子说明什么是函数指针 */ //以一个加 ...

  7. C/C++ 不带参数的回调函数 与 带参数的回调函数 函数指针数组 例子

    先来不带参数的回调函数例子 #include <iostream> #include <windows.h> void printFunc() { std::cout<& ...

  8. c语言函数传递数组

    1.传递数组,打印不出来 #include <stdio.h> void solve() { printf(]); } int main() { int i; ;i<n;i++) { ...

  9. Linux C 程序 函数,数组,指针,gdb调试器(SEVEN)

    函数,数组,指针,gdb调试器 1.函数定义 如果明确指定返回类型,默认为int 参数传递:实参对形参的参数传递是单向的,实参只是把自己的值赋给形参.                      形参的 ...

  10. PHP函数积累总结(Math函数、字符串函数、数组函数)

    Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...

随机推荐

  1. bzoj 3811: 玛里苟斯【线性基+期望dp】

    这个输出可是有点恶心啊--WA*inf,最后抄了别人的输出方法orz 还有注意会爆long long,要开unsigned long long 对于k==1,单独考虑每一位i,如果这一位为1则有0.5 ...

  2. locate的基本用法

    一.工作原理 1. locate是通过读取一个或多个由updatedb命令生成的数据库来查找文件的,而updatedb由计划任务程序cron每天运行来更新缺省的数据库(/var/lib/mlocate ...

  3. Springboot 配置 application.yml 连接MySQL数据库

    1.在pom.xml的<dependencies></dependencies>标签中中加入以下依赖 <dependency> <groupId>org ...

  4. ubuntu 直接用软件的名字启动非apt安装的软件

    方法一: 可以在.bashrc文件中加入 alias命令,把软件的名字就等于软件执行文件的绝对路径 方法二: 在/usr/bin 目录下为执行文件创建软链接(未尝试)不过应该可以 软件自启动的方法 在 ...

  5. chrome调试中resource改到application中了

    如题,看视频的时候发现在resource下面查看cookie,但是自己试的时候发现没有了这个工具, google之后发现原来该位置了

  6. Hdu 5459 Jesus Is Here (2015 ACM/ICPC Asia Regional Shenyang Online) 递推

    题目链接: Hdu 5459 Jesus Is Here 题目描述: s1 = 'c', s2 = 'ff', s3 = s1 + s2; 问sn里面所有的字符c的距离是多少? 解题思路: 直觉告诉我 ...

  7. Vue-cli构建项目, 组件中js代码引入图片路径问题

    问题描述 .vue的组件分成三个部分, template结构部分, script路径代码, style页面样式 首先, 我们可以在template可以正确引入, 无论是dev, 还是build都没有问 ...

  8. 517 Super Washing Machines 超级洗衣机

    详见:https://leetcode.com/problems/super-washing-machines/description/ C++: class Solution { public: i ...

  9. STM32CUBEMX使用注意:

    一 注意堆栈大小,简单来说,栈空间用于局部变量空间(size=0x400一般够用),堆(size=0x200一般够用)空间用于 alloc 或者 malloc函数动态申请变量空间

  10. 9.JAVA-抽象类定义

    1.抽象类 抽象类,用来表示一个抽象概念. 是一种只能定义类型,而不能产生对象的类,所以定义了抽象类则必须有子类的出现. 抽象类的好处在于能够明确地定义子类需要覆写的方法 抽象类需要使用abstrac ...