关联数组

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. P1648 看守

    传送门 以二维的两个点\((x1,y1),(x2,y2)\)为例,那么他们之间的曼哈顿距离肯定为一下四个之一\((x1-x2)+(y1-y2)\),\((x2-x1)+(y1-y2)\),\((x1- ...

  2. CF1059D Nature Reserve(二分)

    简洁翻译: 有N个点,求与y=0相切的,包含这N个点的最小圆的半径 题解 二分半径右端点开小了结果交了二十几次都没A……mmp…… 考虑一下,显然这个半径是可以二分的 再考虑一下,如果所有点都在y轴同 ...

  3. 安装kibana

    下载kibana5.1.1或者5.1.2版本的deb包,然后用dpkg命令安装 安装后启动位置在 /usr/share/kibana/bin中,在该目录下运行 ./kibana 即可启动 启动前应该先 ...

  4. Failed to convert property value of type 'java.util.LinkedHashMap' to required type 'java.util.Map' for property 'filters'

    在使用shiro的自定义filter出现的问题 <property name="filters"> <util:map> <entry key=&qu ...

  5. php.ini配置文件位置

    laravel之今天遇到个意想不到的问题: 我在测试文件上传,大于2M的文件时候hasFile() 方法报错,这一定是文件大小限制.接下来就跳坑了 1.首先查找php.ini的位置,就用find / ...

  6. 无法获得VMCI 驱动程序的版本: 句柄无效的解决方法

    关闭虚拟机,找到安装路径,用记事本打开.vmx结尾的文件 将vmci0.present = "TRUE"改为vmci0.present = "FALSE"保存

  7. 自己写的MD5加密原码

    package com.wh.md5; import java.security.MessageDigest; import java.util.Arrays; /** * @author 王恒 * ...

  8. linux小白成长之路13————用U盘安装linux服务器

    [内容指引] 制作CentOS安装引导盘: 安装CentOS: 相关设置: 一.制作CentOS安装引导盘 1.下载安装镜像文件 从官网下载iso文件: 网址:https://www.centos.o ...

  9. Vue2.0实现路由

    Vue2.0和1.0实现路由的方法有差别,现在我用Vue 2.0实现路由跳转,话不多说,直接上代码 HTML代码 <div class="tab"> <route ...

  10. 使用vbScript 链接SQLserver数据库和基础操作

    使用vbs链接SQLserver数据库 数据库的创建.设计使用 management studio完成 1.本地链接数据库 set oCon = server.createObject("a ...