<pre>
<?php
//查找,替换,过滤,判断相关函数
header("Content-Type:text/html;charset=utf-8");
/*知识点一:is_array - 判断一个变量是否是数组
原形:bool is_array ( mixed $var )
功能:判断一个变量是否是数组,如果是返回true,否则返回 false*/
//例:
/*$a=array(2,4,6);
var_dump(is_array($a));//输出:true*/ /*知识点二:array_key_exists 检查给定的键名或索引是否存在于数组中
原形:bool array_key_exists ( mixed $key , array $search )
功能: array_key_exists() 在给定的 key 存在于数组中时返回 TRUE。key 可以是任何能作为数组索引的值。
返回值:成功时返回 TRUE, 或者在失败时返回 FALSE。*/
//例:
/*$a=array('zg'=>'中国');
var_dump(array_key_exists('zg',$a));//输出:true*/
//key_exists是array_key_exists的别名 /*知识点三:in_array - 检查数组中是否存在某个值(只在数组的一维中查找,不查找之数组元素内容)
函数原形:bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。
如果strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
如果找到 needle 则返回 TRUE,否则返回 FALSE。 */
/*$a = array('dl' => '中国');
var_dump(array_key_exists('dl',$a)); //true*/ /*知识点四:array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
原形:mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
功能:在 haystack 中搜索 needle 参数。
参数:如果 needle 是字符串,则比较以区分大小写的方式进行。
如果可选的第三个参数 strict 为 TRUE,则 array_search() 将在 haystack 中检查完全相同的元素。
返回值:如果找到了 needle 则返回它的键,否则返回 FALSE。
如果 needle 在 haystack 中出现不止一次,则返回第一个匹配的键。
要返回所有匹配值的键,应该用 array_keys() 加上可选参数 search_value 来代替。*/
/*$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;*/ /*知识点五:array_replace — 使用传递的数组替换第一个数组的元素
原形:array array_replace ( array $array1 , array $array2 [, array $... ] )
功能说明:array_replace() 函数使用后面数组元素相同 key 的值替换 array1 数组的值。
如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。
如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。
如果一个键仅存在于第一个数组,它将保持不变。
如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
返回值:返回一个数组。如果发生错误,将返回 NULL。 */ /*$a = array('d' => '动', 'l' => '美','x' => '学', 'y' => '院');
$b = array('d' => 'PHP','美');
$c = array_replace($a,$b);
print_r($c);
//输出:Array ( [d] => PHP [l] => 力 [x] => 学 [y] => 院 [0] => 美 )*/ /*知识点六:array_replace_recursive — 使用传递的数组递归替换第一个数组的元素
原形:array array_replace_recursive ( array $array1 , array $array2 [, array $... ] )
功能说明:array_replace_recursive() 使用后面数组元素的值替换数组 array1 的值。
如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。
如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。
如果一个键仅存在于第一个数组,它将保持不变。
如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
array_replace_recursive() 是递归的:它将遍历数组并将相同的处理应用到数组的内部值。
返回值:返回一个数组。如果发生错误,将返回 NULL。
如果数组 array1 中的值是标量,它的值将被第二个数组 array2 中的值替换,它可能是一个标量或者数组。
如果 array1 和 array2 中的值都是数组,array_replace_recursive() 函数将递归地替换它们各自的值。*/ /*$a = array('dl'=>array('动','力'), 'xy'=>array('学','院'));
$b = array('dl' => array('PHP'), 'xy' => array('高级班'));
$c = array_replace_recursive($a,$b);
print_r($c); */
//输出:Array ( [dl] => Array ( [0] => PHP [1] => 力 ) [xy] => Array ( [0] => 高级班 [1] => 院 ) ) /*知识点七:array_filter — 用回调函数过滤数组中的单元
原形:array array_filter ( array $input [, callable $callback = "" ] )
依次将 input 数组中的每个值传递到 callback 函数。
如果 callback 函数返回 TRUE,则 input 数组的当前值会被包含在返回的结果数组中。
数组的键名保留不变。如果没有提供 callback 函数, 将删除 input 中所有等值为 FALSE 的条目。
代码示例:输出0-9之间的偶数*/
//$a = range(0,9);
//$c = array_filter($a,'F');
//print_r($c); //输出数组:0,2,4,6,8
//function F($p){
// if(($p & 1) == 0)
// return 1;
//} /*知识点八:array_walk - 使用用户自定义函数对数组中的每个元素做回调处理
原形:bool array_walk ( array &$array , callable $funcname [, mixed $userdata = NULL ] )
功能:将用户自定义函数 funcname 应用到 array 数组中的每个单元。
array_walk() 不会受到 array 内部数组指针的影响。
array_walk() 会遍历整个数组而不管指针的位置。
参数说明:
典型情况下 funcname 接受两个参数。array 参数的值作为第一个,键名作为第二个。
只有 array 的值才可以被改变,用户不应在回调函数中改变该数组本身的结构。
例如增加/删除单元,unset 单元等等。
如果 array_walk() 作用的数组改变了,则此函数的的行为未经定义,且不可预期。
如果提供了可选参数 userdata,将被作为第三个参数传递给 callback funcname。
返回值:成功时返回 TRUE, 或者在失败时返回 FALSE。*/ /*$b = array();
$a = array('d' => '中', 'l' => '力','x' => '学', 'y' => '院');
array_walk($a,'F','DL_');
function F($p1, $p2, $p3){ //$p1是数组的值,$p2数组的键。$p3是要追加的内容。
global $b;
$b[] = $p3.$p1;
}
print_r($b);*/
//结果:Array ( [0] => DL_中 [1] => DL_力 [2] => DL_学 [3] => DL_院 ) /*知识点九:array_walk_recursive — 对数组中的每个成员递归地应用用户函数
原形:bool array_walk_recursive ( array &$input , callable $funcname [, mixed $userdata = NULL ] )
将用户自定义函数 funcname 应用到 array 数组中的每个单元。本函数会递归到更深层的数组中去。
参数说明:
典型情况下 funcname 接受两个参数。input 参数的值作为第一个,键名作为第二个。
如果提供了可选参数 userdata,将被作为第三个参数传递给 callback funcname。
成功时返回 TRUE, 或者在失败时返回 FALSE。*/
/*$dl = array('d' => '美', 'l' => '力');
$a = array('dl'=>$dl, 'x' => '学', 'y' => '院');
function test_print($item, $key){
echo "$key : $item\n";
}
array_walk_recursive($a, 'test_print');*/
/*
输出:
d : 美
l : 力
x : 学
y : 院
*/ /*知识点十:array_map — 将回调函数作用到给定数组的单元上
原形:array array_map ( callable $callback , array $arr1 [, array $... ] )
功能:array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。
参数:callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
*/
//例:
/*$a = array('d' => '中', 'l' => '力','x' => '学', 'y' => '院');
$b = array_map('F',$a);
function F($p1){
return $p1."_DL";
}
print_r($b);
//结果: Array ( [d] => 中_DL [l] => 力_DL [x] => 学_DL [y] => 院_DL )
*/ //例:
/*$a = array('php','js','mysql','html',"css");
$b = array('9999元','3680元','9999元','688元','888元');
array_map('F',$a,$b);
function F($p1,$p2){
echo $p1."培训学费是".$p2 ,"<br>";
} */
/*
输出:
php培训学费是9999元
js培训学费是3680元
mysql培训学费是9999元
html培训学费是688元
css培训学费是888元
*/
//例:
$a = array('php','js','mysql','html',"css");
$b = array('9999元','3680元','9999元','688元','888元');
$c = array_map(null,$a,$b); //把两个数组合并成数据库读取出的结构形式
$d = array_column($c,0); //提取数据库中某一列数据
print_r($c);
print_r($d);
/*
输出;
Array
(
[0] => Array
(
[0] => php
[1] => 9999元
) [1] => Array
(
[0] => js
[1] => 3680元
) [2] => Array
(
[0] => mysql
[1] => 9999元
) [3] => Array
(
[0] => html
[1] => 688元
) [4] => Array
(
[0] => css
[1] => 888元
) )
Array
(
[0] => php
[1] => js
[2] => mysql
[3] => html
[4] => css
) */ ?>

PHP:第四章——PHP数组查找,替换,过滤,判断相关函数的更多相关文章

  1. PHP:第四章——PHP数组转换,统计,相关函数

    <pre> <?php //数组转换,统计,相关函数 header("Content-Type:text/html;charset=utf-8"); //coun ...

  2. PHP:第四章——PHP数组处理函数

    <pre> <?php //数组处理函数 header("Content-Type:text/html;charset=utf-8"); //compact(); ...

  3. PHP:第四章——PHP数组添加,删除,插入,分割,合并,及运算符

    <pre> <?php header("Content-Type:text/html;charset=utf-8"); /*知识点一:赋值运算符 = 代码示例:数 ...

  4. 自学Java第四章——《数组》

    4.1 数组的相关概念和名词(了解) 1.数组(array): 一组具有相同数据类型的数据的按照一定顺序排列的集合. 把有限的几个相同类型的变量使用一个名称来进行统一管理. 2.数组名: (1)这个数 ...

  5. PHP:第四章——PHP数组array_intersect计算数组交集

    <pre> <?php //array_intersect计算数组交集 header("Content-Type:text/html;charset=utf-8" ...

  6. PHP:第四章——PHP数组array_diff计算数组差集

    <pre> <?php header("Content-Type:text/html;charset=utf-8"); /*知识点一:array_diff — 计 ...

  7. Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具

    摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本 ...

  8. perl5 第四章 列表和数组变量

    第四章 列表和数组变量 by flamephoenix 一.列表二.数组--列表的存贮  1.数组的存取  2.字符串中的方括号和变量替换   3.列表范围  4.数组的输出  5.列表/数组的长度  ...

  9. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

随机推荐

  1. JSmpeg-用JavaScript编写的视频播放器

    使用说明:https://github.com/phoboslab/jsmpeg ffmpeg -i rtmp://abc/ccc/111 -f mpegts -codec:v mpeg1video ...

  2. Python3基础 str endswith 是否以指定字符串结束

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  3. 主引导记录MBR的结构和作用

    MBR磁盘分区都有一个引导扇区,称为主引导记录,英文简称为MBR.1. MBR的结构MBR扇区位于整个硬盘的第一个扇区:按照C/H/S地址描述,即0柱面〇磁头1扇 区:按照LBA地址描述即0扇区.它是 ...

  4. P1471 方差

    题目 luogu 思路 \[\frac{1}{n}*\sum_{1}^{n}( a_{i}-A)^{2}\] \[\frac{1}{n}*\sum_{1}^{n}( a_{i}^2-2*A*a_{i} ...

  5. P1349 广义斐波那契数列(矩阵加速)

    P1349 广义斐波那契数列 题目描述 广义的斐波那契数列是指形如an=pan-1+qan-2的数列.今给定数列的两系数p和q,以及数列的最前两项a1和a2,另给出两个整数n和m,试求数列的第n项an ...

  6. Node10.15.0的安装

    1. 首先我们需要去node官网下载最近版本的压缩包,然后我们把他们解压到我们自定义的安装路径,我使用的是/usr/local/lib/nodejs VERSION=v10.15.0 DISTRO=l ...

  7. 论文笔记——PRUNING FILTERS FOR EFFICIENT CONVNETS

    论文地址:https://arxiv.org/abs/1608.08710 主要思想 这篇文章主要讲了对filters的裁剪,裁剪方法是计算L1范数,然后裁剪掉较少的,多少取决于加速比. 实现效果 V ...

  8. socket编程时使用了inet_ntoa函数,存储到链表中的数据总是自动改变

    这和inet_ntoa的返回值有关系: 函数声明:char *inet_ntoa (struct in_addr); 返回点分十进制的字符串在静态内存中的指针. 所在头文件:<arpa/inet ...

  9. The way to Go(2): 语言的主要特性与发展的环境和影响因素

    Reference: Github: Go Github: The way to Go 语言的主要特性与发展的环境和影响因素 现有编程语言对于Go语言发展的影响: Why Go? C/C++ 的发展速 ...

  10. stm32 pwm 电调 电机

    先上代码 python 树莓派版本,通俗表现原理.stm32 C语言版本在后面 import RPi.GPIO as GPIO import time mode=2 IN1=11 def setup( ...