常见字符串和数组函数

常见字符串和数组函数

range

<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
    echo $number;
}

// The step parameter was introduced in 5.0.0
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
    echo $number;
}

// Use of character sequences introduced in 4.1.0
// array(‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘, ‘h‘, ‘i‘);
foreach (range(‘a‘, ‘i‘) as $letter) {
    echo $letter;
}
// array(‘c‘, ‘b‘, ‘a‘);
foreach (range(‘c‘, ‘a‘) as $letter) {
    echo $letter;
}
?>

shuffle

<?php
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
?>

rand

rand() 和 mt_rand()  都是闭区间
Note: 自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 给随机数发生器播种 ,因为现在是由系统自动完成的
<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";

echo mt_rand(5, 15);
?>
// 计算一个随机浮点数
<?php
function randomFloat($min = 0, $max = 1) {
    return $min + mt_rand() / mt_getrandmax() * ($max - $min);
}

var_dump(randomFloat());
var_dump(randomFloat(2, 20));
?>

join

别名: implode()
# 将数组变成字符串
# 返回的是字符串
string implode ( string $glue , array $pieces )
 string implode ( array $pieces )

注意空白数组不能使用 join

<?php
$array = array(‘lastname‘, ‘email‘, ‘phone‘);
$str = join(", ", $array);

echo $str.‘‘;             // lastname,email,phone

// Empty string when using an empty array:
var_dump(join(‘hello‘, array())); // string(0) ""
?>

各种字符串分割的比较

preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比 split() 更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费

explode

array explode ( string $delimiter, string $string [, int $limit ])
# 将字符串变成数组
<?php
// 示例 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
<?php
/* A string that doesn‘t contain the delimiter will simply return a one-length array of the original string. */
// 如果字符串不存在该分隔符, 那么整个字符串就会被 合并成 一个 数组
$input1 = "hello";
$input2 = "hello,there";
var_dump( explode( ‘,‘, $input1 ) );
var_dump( explode( ‘,‘, $input2 ) );
?>
<?php
$str = ‘one|two|three|four‘;

// 正数的 limit
print_r(explode(‘|‘, $str, 2));

// 负数的 limit(自 PHP 5.1 起)
print_r(explode(‘|‘, $str, -1));

// 结果
// Array
// (
//     [0] => one
//     [1] => two|three|four
// )
// Array
// (
//     [0] => one
//     [1] => two
//     [2] => three
// )
?>

split

split — 用正则表达式将字符串分割到数组中
array split (string $pattern , string $string [, int $limit ])
<?php
$passwd_line = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $extra) = split (":", $passwd_line);
echo ‘|‘, $passwd_line, ‘|<br />‘;
echo ‘|‘, $user, ‘|‘, $pass, ‘|‘, $uid, ‘|‘, $gid, ‘|‘, $extra, ‘|<br />‘;

echo ‘<br />‘;

list($user, $pass, $uid, $gid, $extra) = split (":", $passwd_line, 5);
echo ‘|‘, $passwd_line, ‘|<br />‘;
echo ‘|‘, $user, ‘|‘, $pass, ‘|‘, $uid, ‘|‘, $gid, ‘|‘, $extra, ‘|<br />‘;

echo ‘<br />‘;

// 分隔符可以是斜线,点,或横线
$date = "04/30/1973";
list($month, $day, $year) = split (‘[/.-]‘, $date);
echo "Month: $month; Day: $day; Year: $year <br />";
?>

prep_split

preg_split — 通过一个正则表达式分隔字符串
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
flags
   PREG_SPLIT_NO_EMPTY         preg_split() 将进返回分隔后的非空部分
   PREG_SPLIT_DELIM_CAPTURE    用于分隔的模式中的括号表达式将被捕获并返回
   PREG_SPLIT_OFFSET_CAPTURE   对于每一个出现的匹配返回时将会附加字符串偏移量. 注意:这将会改变返回数组中的每一个元素, 使其每个元素成为一个由第 0 个元素为分隔后的子串,第 1 个元素为该子串在 subject 中的偏移量组成的数组
<?php
// 使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
// Array ( [0] => hypertext [1] => language [2] => programming )
?>
<?php
$str = ‘str ing‘;
$chars = preg_split(‘//‘, $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
// Array ( [0] => s [1] => t [2] => r [3] => [4] => i [5] => n [6] => g )
?>
<?php
$str = ‘hypertext language programming‘;
$chars = preg_split(‘/ /‘, $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);

// Array (
//    [0] => Array ( [0] => hypertext [1] => 0 )
//    [1] => Array ( [0] => language [1] => 10 )
//    [2] => Array ( [0] => programming [1] => 19 )
//       )
?>

str_split

array str_split ( string $string [, int $split_length = 1 ] )
str_split — 将字符串转换为数组
<?php
$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);
?>

// Array
// (
//     [0] => H
//     [1] => e
//     [2] => l
//     [3] => l
//     [4] => o
//     [5] =>
//     [6] => F
//     [7] => r
//     [8] => i
//     [9] => e
//     [10] => n
//     [11] => d
// )

// Array
// (
//     [0] => Hel
//     [1] => lo
//     [2] => Fri
//     [3] => end
// )
时间: 2024-11-05 14:52:55

常见字符串和数组函数的相关文章

PHP字符串、数组函数

字符串函数 1.explode($delimiter,$str[,$limit])  将$str以$delimiter分割符分割$str字符串,返回一个分割后的数组 $delimiter:分隔符 $str:要分割的字符串 当$limit>0时  表示分割后返回数组的元素个数 当$limit=0时  表示分割后返回数组的元素个数为1 当$limit<0时  表示将分割后返回的数组元素倒序删除$limit个数 2.htmlspecialchars_decode($str)  将特殊的 HTML 实

PHP强大的数组函数

<?php/** * Created by PhpStorm. * User: 63448 * Date: 2018/5/6 * Time: 21:56 */echo "<h3>强大的数组函数</h3> ";echo "<hr>";//数组的定义 $arr1 = array(); $arr2 = []; //数组赋值 $arr = array('a', 'b'); $arr = array('key1' => 'a',

几个常见字符串处理函数的实现原理

字符串是一种常见的数据结构,对字符串的处理又可以十分灵活,所以在实际开发,尤其是非数值处理中,字符串的应用非常广泛.虽然很多字符串操作都封装在了函数库里,应用程序可以直接通过调用库函数来实现字符串处理,然而对于开发者而言,若能了解其底层实现原理,对于应用编程而言还是大有裨益的. 这篇文章主要介绍几种常用的字符串处理函数的实现原理. 一.strlen函数 strlen函数:计算字符串的实际长度,不包括'\0'. 算法:从第一个字符开始扫描,直到遇见第一个'\0',停止扫描,返回字符串长度. 代码如

C语言常见字符串操作函数总结

1. bcmp 原型:extern int bcmp(const void *s1, const void *s2, int n); 用法:#include <string.h> 功能:比较字符串s1和s2的前n个字节是否相等 说明:相等返回0,否则返回非0值 2. bcopy 原型:extern void bcopy(const void *src, const void *dest, int n); 用法:#include <string.h> 功能:将字符串src的前n个字节

常见指针:指针函数 函数指针 指针的指针 指向指针数组的指针

一.指针函数与函数指针 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义: 1.指针函数是指带指针的函数,即本质是一个函数.函数返回类型是某一类型的指针 类型标识符    *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值.函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量. 表示: floa

指针 指针与数组 指针与字符串 指针与函数 结构体与指针 宏

指针 指针与数组 指针与字符串 指针与函数?? 指针与数组 1.数组名:数组元素首地址 eg: int array[3]={1,3,6}; 这里array 恒等于&array[0] 2.int *p = a; int *p = 0; int a[]={0}; 3.int *p = a; 均指向数组的首地址 *p是? *(p+1)是?(*p)+1是? *(p+1)决定向下移动几个字节是类型 4.指针可以当数组名使用 p[1] = 3; 恒等于a[1] ;恒等于*(p+1);恒等于*(a+1) 5.

Js中常用的字符串,数组,函数扩展

由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展,一来可以练练手,二来也锻炼下自己的代码能力.由于代码里面的注释自认为已经非常详细,所以就直接贴代码了. 1. 字符串扩展: ;(function() { var method, stringExtends = { /** * 删除字符串开始和结尾的空白 * @returns {string} */ stri

字符串、数组操作函数 Copy Concat Delete Insert High MidStr Pos SetLength StrPCopy TrimLeft

对字符串及数组的操作,是每个程序员必须要掌握的.熟练的使用这些函数,在编程时能更加得心应手. 1.Copy 功能说明:该函数用于从字符串中复制指定范围中的字符.该函数有3个参数.第一个参数是数据源(即被复制的字符串),第二个参数是从字符串某一处开始复制,第三个参数是要复制字符串的长度(即个数).最后函数返回一个新的字符串(即是我们指定要复制的字符串内容). 参考实例: var S: String; MyStr: String; // 保存新的字符串 begin S := 'I Love Chin

php数组函数常见的那些

一.数组操作的基本函数 array_values($arr); //获得数组的值 array_keys($arr); //获得数组的键名 array_flip($arr); //数组中的值与键名互换(如果有重复前面的会被后面的覆盖) array_search('PHP',$arr); //检索给定的值,加true则是严格类型检查 array_reverse($arr); //将数组中的元素翻转 in_array("apple", $arr); //在数组中检索apple array_k