str_replace 数组替换应用例子

 更新时间:2016年11月25日 16:50  点击:1310

str_replace 数组
//条件是替换与被替换数组长度必须相等
$t =array('<','>');
$e =array('&lt;','&gt;');

print_r ( str_replace($t,'ddd',$t));
/*
(
    [0] => ddd
    [1] => ddd
)
*/

print_r( str_replace($t,$e,$t) );

/*
Array
(
    [0] => &lt;
    [1] => &gt;
)
*/


//再测试字符串与数组
$t =array('<','>');
$e =array('&lt;','&gt;');
$str = "<a fdafdafsa fdafda";
print_r ( str_replace($t,'str_replace',$str));

// 值str_replacea fdafdafsa fdafda

// str_replace 相关文章
//

filter_var 还有很多其他过滤功能如下,具体请参见手册
FILTER_CALLBACK 调用用户自定义函数来过滤数据。
FILTER_SANITIZE_STRING 去除标签,去除或编码特殊字符。
FILTER_SANITIZE_STRIPPED "string" 过滤器的别名。
FILTER_SANITIZE_ENCODED URL-encode 字符串,去除或编码特殊字符。
FILTER_SANITIZE_SPECIAL_CHARS HTML 转义字符 '"<>& 以及 ASCII 值小于 32 的字符。
FILTER_SANITIZE_EMAIL 删除所有字符,除了字母、数字以及 !#$%&'*+-/=?^_`{|}~@.[]
FILTER_SANITIZE_URL 删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|\^~[]`<>#%";/?:@&=
FILTER_SANITIZE_NUMBER_INT 删除所有字符,除了数字和 +-
FILTER_SANITIZE_NUMBER_FLOAT 删除所有字符,除了数字、+- 以及 .,eE。
FILTER_SANITIZE_MAGIC_QUOTES 应用 addslashes()。
FILTER_UNSAFE_RAW 不进行任何过滤,去除或编码特殊字符。
FILTER_VALIDATE_INT 在指定的范围以整数验证值。
FILTER_VALIDATE_BOOLEAN 如果是 "1", "true", "on" 以及 "yes",则返回 true,如果是 "0", "false", "off", "no" 以及 "",则返回 false。否则返回 NULL。
FILTER_VALIDATE_FLOAT 以浮点数验证值。
FILTER_VALIDATE_REGEXP 根据 regexp,兼容 Perl 的正则表达式来验证值。
FILTER_VALIDATE_URL 把值作为 URL 来验证。
FILTER_VALIDATE_EMAIL 把值作为 e-mail 来验证。
FILTER_VALIDATE_IP 把值作为 IP 地址来验证。

PHP array_slice() 函数
PHP Array 函数
定义和用法
array_slice() 函数在数组中根据条件取出一段值,并返回。

注释:如果数组有字符串键,所返回的数组将保留键名。(参见例子 4)

语法
array_slice(array,offset,length,preserve)参数 描述
array 必需。规定输入的数组。
offset 必需。数值。规定取出元素的开始位置。

如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。
 
length 可选。数值。规定被返回数组的长度。

如果是负数,则从后向前,选取该值绝对值数目的元素。如果未设置该值,则返回所

有元素。
 
preserve 可选。可能的值:

true - 保留键
false - 默认 - 重置键
 


<?php
/*
用手册上的例子
*/
$input = array ("a", "b", "c", "d", "e");
$output = array_slice ($input, 2); // returns "c", "d", and "e",
$output = array_slice ($input, 2, -1); // returns "c", "d"
$output = array_slice ($input, -2, 1); // returns "d"
$output = array_slice ($input, 0, 3); // returns "a", "b", and "c"
?>


实例

<?php
$term = $_REQUEST['q'];
$images = array_slice(scandir("images"), 2);
foreach($images as $value) {
 if( strpos(strtolower($value), $term) === 0 ) {
  echo $value . " ";
 }
}
?>

<?php
// split the given array into n number of pieces
function array_split($array, $pieces=2)
{  
    if ($pieces < 2)
        return array($array);
    $newCount = ceil(count($array)/$pieces);
    $a = array_slice($array, 0, $newCount);
    $b = array_split(array_slice($array, $newCount), $pieces-1);
    return array_merge(array($a),$b);
}

// Examples:
$a = array(1,2,3,4,5,6,7,8,9,10);
array_split($a, 2);    // array(array(1,2,3,4,5), array(6,7,8,9,10))
array_split($a, 3);    // array(array(1,2,3,4), array(5,6,7), array

(8,9,10))
array_split($a, 4);    // array(array(1,2,3), array(4,5,6), array(7,8),

array(9,10))

?>

<?php
array_values() //返回数组中所有元素
array_walk() //使用自定义函数遍历数组都一个单元
arsort(); //保留数组下标于值的关系进行倒序排列
asort() //保留数组下标于值的关系进行正序排列
compact() //将变量导入到数组中, 以变量名为下标, 值为值
extract() //将数组导入到变量, 下标为变量名, 值为值
count() //统计数组有多少个元素
current() //当前指针所指元素
next() //指针向下移动
prev() //指针向上移动
end() //指针移动到数组末尾
reset() //指针移动到数组开头
key() //返回当前指针所指元素的下标
each() //返回一对 key/value
list() //将数组导入到变量中
krsort() //按照下标进行倒序排列
ksort() //按照下标进行升序排列
range() //创建数组
sort() //按值重小到大排列
rsort() //按值重大到些排列
shuffle() //随机排列
usort() //......无语这个函数, Google去咯
?>

PHP数组排序实例与函数


PHP4函数手册 array里的算是看完咯, 明天在看看最新的手册。。。。

array_values($arr) array
返回数组所有元素
复制代码 - PHP100.com<?php
$arr = array("a", "b", "c");
$arr = array_flip($arr); //反转数组的下标和值现在的$arr = array(0, 1, 2);
$arr = array_values($arr); //返回数组$arr中的所有元素
print_r($arr); //结果: array(0, 1, 2);
?>

 

array_walk($arr, $func, [$data]) bool
使用用户自定义的函数遍历所有的元素,返回true/false
注意:此函数只处理数组的第一维
$func是一个函数名
默认会传入两个参数 第一个 $arr的值, 第二个$arr的下标, 一对一对的传哦
复制代码 - PHP100.com<?php
$arr = array('a', 'b', 'c');
array_walk($arr, 'test'); //这里第二个参数test就是函数名
function test(&$val, $key) //这里第一个参数加上引用, 那么修改$val就等于修改$arr中的元素
{
$val = 'x_' . $val; //这里给他加一个前缀
}
print_r($arr); //输出结果 array('x_a', 'x_b', 'x_c');
//这里如果把$arr改成 $arr = array('a', 'b', 'c', array(1, 2, 3)); 打印结果将是 array('x_a', 'x_b', 'x_c', 'x_Array');
?>


现在传入第三那个参数$data, 如果有传入第三个参数,那么第三个参数将传给第二个参数定义的函数当中的第三个参数
复制代码 - PHP100.com<?php
array_walk($arr, 'test', 'x_');
function test(&$val, $key, $prefix)
{
$val = $prefix . $val; //其实这里的$prefix就是上面的x_
}
print_r($arr); //输出结果和上面一样 array('x_a', 'x_b', 'x_c');
?>

 

arsort($arr) bool
对数组$arr进行倒序排列并保留下标和值的关系,如果排序成功返回true 否则返回 false
此函数只处理数组的第一维
复制代码 - PHP100.com<?php
$arr = array('a' => 'a', 'b' => 'b', 'c' => 'c');
arsort($arr);
print_r($arr); //打印结果: array('c' => 'c', 'b' => 'b', 'a' => 'a'); 如果有数字那么数字会在字符前面
?>


asort($arr) bool
对数组$arr进行正序排列也就是a-z这样排列, 返回值和上面一样
此函数也保留下标和值的关系
复制代码 - PHP100.com<?php
$arr = array('a' => 'a', 'b' => 'b', 'c' => 'c');
asort($arr);
print_r($arr); //结果没变, 就是原那数组
$arr = array('c' => 'c', 'b' => 'b', 'a' => 'a');
asort($arr);
print_r($arr); //结果:array('a' => 'a', 'b' => 'b', 'c' => 'c');
?>


compact($varname, ...., $varname) array
接受n个$varname并将$varname当做下标$varname的值当做值创建一个数组$varname可以为数组
解释不清楚, 看例子
复制代码 - PHP100.com<?php
$a = "变量a";
$b = "变量b";
$arr = compact('a', 'b'); //这里传入 a b 分别为上面定义的变量名称
print_r($arr); //打印结果为 array('a' => '变量a', 'b' => '变量b');
//还可以把变量名称当做数组传入
$vars = array('a', 'b');
$arr = compact($vars);
print_r($arr); //结果和上面一样, 其实这个函数就是做extract的相反操作
?>


extract($arr, $type, $prefix) int
将数组$arr的下标当做变量名, 值当做变量的值
$arr 目标数组
$type 这个是遇过遇到相同下标使用什么方式处理, 值是PHP已经定义了的常量
EXTR_OVERWRITE 如果相同, 那么就覆盖前面的那个变量, 默认就是这个
EXTR_SKIP 如果相同, 不覆盖前面那个变量
EXTR_PREFIX_SAME 如果相同, 那么使用第三个参数$prefix加到变量名前
EXTR_PREFIX_ALL 把所有变量名称都加上$prefix当做前缀
注意在$type为EXTR_PREFIX_SAME或EXTR_PREFIX_ALL时才需要传入参数$prefix, 不然传了也没用。。。
例子
复制代码 - PHP100.com<?php
$arr = array('a' => '变量a', 'b' => '变量b');
extract($arr, EXTR_OVERWRITE); //如果有相同,那么覆盖
echo $a; //输出结果将是 '变量a'
echo $b; //结果: '变量b'
$arr = array('a' => '变量a', 'b' => '变量b', 'a' => '第二个变量a'); //这里有两个元素下标都为a
extract($arr);
echo $a; //输出结果是: '第二个变量a' 很明显已经覆盖了 '变量a' 因为默认第二个参数是 EXTR_OVERWRITE
?>

 

count($arr) int
统计数组中的元素的数目
复制代码 - PHP100.com<?php
$arr = array('a', 'b');
echo count($arr); //很明显结果为2
?>

 

current($arr) mixed
返回数组中当前指针所指的元素,此函数别名 pos
复制代码 - PHP100.com<?php
$arr = array('a', 'b', 'c');
echo current($arr); //结果为 'a'
echo next($arr); //指针向下一个移动,所以现在指针所指的是b 输出结果当然为 'b'
echo current($arr); //结果又是b 因为当前指针就在b这哦
echo end($arr) //指针移动到数组最后, 并返回结果, 所以结果为c
echo prev($arr); //指针向上一个移动, 结果b
echo key($arr); //返回指针所指元素的下标 因为上面指针到了b那么所有 结果为1 因为b的下标就是1


echo reset($arr); //重置指针都数组开头 结果a
?>

each($arr) array
重数组$arr中返回一对 key/value也就是 下标/值
复制代码 - PHP100.com<?php
$arr = array('a' => 1, 'b' => 2, 'c' => c);
$res = each($arr);
print_r($res); //结果为 array('0' => 'a', 'key' => 'a', 1 => 1, 'value' => 1)
//返回结果 0 和 key 都代表 下标 1 和 value 代表值
//没使用一次each数组内部指针就会向下移动一次, 如果已经是数组末端, 将返回false
$res = each($arr);
print_r($res); //结果就会变成 array('0' => 'b', 'key' => 'b', 1 => 2, 'value' => 2)
?>


list($val, .. , [$val]) void 无返回值
把数组中的值赋给一些变量$val
复制代码 - PHP100.com<?php
$arr = array('颜色', '字母A', '字母B');
list($color, $a, $b) = $arr; //注意这里list的参数$val 位置是和数组中的位置对应, 重左到右
echo $color; //结果 '颜色'
echo $a; //结果 '字母A'
list($color, , $b) = $arr; //这样空一个
echo $color; //结果 '颜色'
echo $a; //结果 一样都没有, 因为就没给a赋值哦, 哪里也空出来咯
echo $b; //结果 '字母B'
//list each 一起用
$arr = array('颜色', '字母A', '字母B');
while(list($key, $val) = each($arr)) {
echo '下标:' . $key;
echo '----值:' . $val;
echo '<br>';
}
//输出结果为
//下标:0----值:颜色
//下标:1----值:字母A
//下标:2----值:字母B
?>

 

krsort($arr, [$type]) bool
对数组$arr按照其下标进行倒序排列
还有一个ksort(); 这个是按下标进行升序排列
$type 是排序方式
复制代码 - PHP100.com<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3);
krsort($arr);
print_r($arr); //打印结果: array('c' => 3, 'b' => 2, 'a' => 1);
?>

 

range($go, $end, [$setup) array
这个有点不好解释
复制代码 - PHP100.com<?php
$arr = range(1, 10);
print_r($arr); //结果array(1, 2, 3, 4, .., 10);
$arr = range(1, 10, 2); //这里指定第三个参数, 也就是步长
print_r($arr); //结果array(1, 3, 5, 7, 9);
$arr = range('a', 'z');
print_r($arr); //结果 array('a', 'b', 'c', ..., 'z');
?>


sort($arr);
将数组重a-z进行排序
复制代码 - PHP100.com<?php
$arr = array("lemon","orange","banana","apple");
sort($arr);
print_r($arr); //结果array('apple', 'banana', 'lemon', 'orange');
//还有个z-a进行排序的函数rsort
?>


shuffle($arr) bool
将数组$arr进行乱排序, 也就是随机排序
复制代码 - PHP100.com<?php
$arr = range(1, 10);
shuffle($arr);
print_r($arr); //结果是什么我也不知道, 因为是随机的
?>

 

usort($arr, $func) bool
使用你自己定义的函数对$arr进行排序$func是自定义函数
复制代码 - PHP100.com<?php
$arr = array(1, 5, 8 ,2 ,0 ,3);
usort($arr, 'test');
function test($a, $b) {
return $a == $b ? 0 : $a < $b ? 1 : -1;
}
print_r($arr); //打印结果 Array ( [0] => 8 [1] => 5 [2] => 3 [3] => 2 [4] => 1 [5] => 0 )
// 这函数没弄懂哦。。 不知道参数$a , $b 代表的是什么? 看手册也没看懂, 如果这么简单的排序用ksort就行咯rsort
// 这样的函数还有两个 uksort,和uasort都没弄懂, 郁闷。。。
?>

[!--infotagslink--]

相关文章

  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • php数组操作 键名比较 差集 交集赋值

    本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
  • C#二维数组基本用法实例

    这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php curl模拟post请求和提交多维数组的示例代码

    下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <&#63;php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
  • C#数组的常用操作方法小结

    Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
  • C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • C# 拷贝数组的几种方法(总结)

    下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • PHP 二维数组根据某个字段排序的具体实现

    本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
  • c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C#读取文件所有行到数组的方法

    这篇文章主要介绍了C#读取文件所有行到数组的方法,涉及C#针对文件及数组的相关操作技巧,需要的朋友可以参考下...2020-06-25
  • 将二维数组转为一维数组的2种方法

    如何将下面的二维数组转为一维数组。复制代码 代码如下:$msg = array(  array(    'id'=>'45',    'name'=>'jack'  ),  array(    'id'=>'34',    'name'=>'mary'  ),  array(    'id...2014-05-31
  • php中数组写入文件方法

    在php中为我们提供了一个函数var_export 他可以直接将php代码入到一个文件中哦。 代码如下 复制代码 var_export($times,true);后面不加tru...2016-11-25
  • PHP 如何获取二维数组中某个key的集合

    本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07
  • js有序数组的连接问题

    1.前言 昨天碰到一道关于如何解决有序数组的连接问题,这是一个很常见的问题。但是这里要考虑到代码的效率问题,因为要连接的数组都是有序的,这是一个非常重要的前提条件。2.简单但效率不高的算法 我首先想到的是使用...2013-10-04
  • python 实现将Numpy数组保存为图像

    今天小编就为大家分享一篇python 实现将Numpy数组保存为图像,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
  • php使用floor去掉小数点的例子

    floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
  • javascript中去除数组重复元素的实现方法【实例】

    下面小编就为大家带来一篇javascript中去除数组重复元素的实现方法【实例】。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧...2016-04-16
  • C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

    在工作中经常遇到C#数组、ArrayList、List、Dictionary存取数据,但是该选择哪种类型进行存储数据呢?很迷茫,今天小编抽空给大家整理下这方面的内容,需要的朋友参考下吧...2020-06-25