每日五个 PHP 函数记忆

看了Lhao的函数记忆,感觉几年一直没有记过函数,每次使用都百度,很低级。先从记忆函数开始
超哥给Lhao的建议,抄来自勉
记 PHP 函数
学习优秀代码的思想
不停写代码,十万行代码什么时候达到什么时候就 NB 了
多尝试脱离任何固定思维去写东西、按自己的想法去做、然后你会遇到问题,总结起来
反思自己写代码的套路与流程,敢于怀疑

2019-03-12 字符串位置函数

  • strpos—查找字符串首次出现位置(区分大小写)
// 说明 strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
// offset:如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。如果是负数,搜索会从字符串结尾指定字符数开始。
// 没有则返回false,判断时要用===,因为0==false
// php7.1.0 开始支持负数的offset,先不要用
// 忽视位置偏移量之前的字符进行查找
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
  • stripos() - 查找字符串首次出现的位置(不区分大小写)
// 说明: stripos ( string $haystack , string $needle [, int $offset = 0 ] ) : int
echo strpos("I love pHp, I love php too!","php"; // 19
echo stripos("I love pHp, I love php too!","php") // 7
  • strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
// 说明 strrpos ( string $haystack , string $needle [, int $offset = 0 ] ) : int
echo strrpos('aba','a'); // 2
  • strripos — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
// 说明 strripos ( string $haystack , string $needle [, int $offset = 0 ] ) : int
echo strripos('aba','A'); // 2
  • strstr — 查找字符串的首次出现
// 说明 strstr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string
// 返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。
// 该函数区分大小写。如果想要不区分大小写,请使用 stristr()。
// 如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数。
// before_needle 若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。
// 未发现返回 false
$email  = 'name@example.com';
echo strstr($email, '@'); // @example.com
echo strstr($email, '@', true); // name
  • strpbrk — 在字符串中查找一组字符的任何一个字符(区分大小写)
// 说明 strpbrk ( string $haystack , string $char_list ) : string
// strpbrk() 函数在 haystack 字符串中查找 char_list 中的字符。
// 如果没有找到,则返回 FALSE。
$text = 'This is a Simple text.';

// 输出 "is is a Simple text.",因为 'i' 先被匹配
echo strpbrk($text, 'mi');

// 输出 "Simple text.",因为字符区分大小写
echo strpbrk($text, 'S');

2019-03-13 字符串截取函数

  • substr — 返回字符串的子串
// 说明 substr ( string $string , int $start [, int $length ] ) : string
$rest = substr("abcdef", -1);    // 返回 "f"
$rest = substr("abcdef", -2);    // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"
  • mb_substr — 获取部分字符串
// 说明 mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) : string
// mb_substr是按字符分割
// 以设定字符串的编码,但是一般的服务器都没打开php_mbstring.dll,需要在php.ini中把php_mbstring.dll打开。
echo mb_substr('我们都是好孩子hehe',0,9);   //返回  我们都
echo mb_substr('我们都是好孩子hehe',0,9,'utf-8');   //返回 我们都是好孩子he
// 第一个是以三个字节为一个中文,这就是utf-8编码的特点,下面加上utf-8字符集说明,所以,是以一个字为单位来截取的
  • substr_replace — 替换字符串的子串
// 说明 substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] ) : mixed
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";

/* 这两个例子使用 “bob” 替换整个 $var。*/
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";

/* 将 “bob” 插入到 $var 的开头处。*/
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";

/* 下面两个例子使用 “bob” 替换 $var 中的 “MNRPQR”。*/
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";

/* 从 $var 中删除 “MNRPQR”。*/
echo substr_replace($var, '', 10, -1) . "<br />\n";
  • str_replace — 子字符串替换
// 说明 str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed
// 该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。
// 赋值: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
// 赋值: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// 赋值: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
// 赋值: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
  • preg_replace — 执行一个正则表达式的搜索和替换
// 说明 preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed
// 搜索subject中匹配pattern的部分, 以replacement进行替换。
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string); // April1,2003

2019-03-14 字符串函数

  • strlen — 获取字符串长度
// 说明 strlen ( string $string ) : int
echo strlen('abcdef'); // 6
  • mb_strlen — 获取字符串的长度
// 说明 mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] ) : mixed
$str = "a你好啊";
echo strlen($str); // 6
echo mb_strlen($str); // 
  • iconv_strlen — 返回字符串的字符数统计(指定字符集)
// 说明 iconv_strlen ( string $str [, string $charset = ini_get("iconv.internal_encoding") ] ) : int
// 和 strlen() 不同的是,iconv_strlen() 统计了给定的字节序列 str 中出现字符数的统计,基于指定的字符集,其产生的结果不一定和字符字节数相等。
$str = "I�t�rn�ti�n\xe9�liz�ti�n";
print "mb_strlen: ".mb_strlen($str,'UTF-8')."\n";   // 20
print "strlen/utf8_decode: ".strlen(utf8_decode($str))."\n";    // 20
print "iconv_strlen: ".iconv_strlen($str,'UTF-8')."\n"; // 
  • substr_count — 计算字串出现的次数
// 说明 substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] ) : int
$text = 'This is a test';
echo substr_count($text, 'is'); // 2
// 字符串被简化为 's i',所以输出 0
echo substr_count($text, 'is', 3, 3);
  • str_repeat — 重复一个字符串
// 说明 str_repeat ( string $input , int $multiplier ) : string
echo str_repeat("-=", 10);  // -=-=-=-=-=-=-=-=-=-=

2019-03-15 字符串数组函数

  • chunk_split — 将字符串分割成小块
// 说明 chunk_split ( string $body [, int $chunklen = 76 [, string $end = "\r\n" ]] ) : string
// 使用此函数将字符串分割成小块非常有用。
$str = "Shanghai";
echo chunk_split($str,1,".");   // S.h.a.n.g.h.a.i.
  • wordwrap — 打断字符串为指定数量的字串
// 说明 wordwrap ( string $str [, int $width = 75 [, string $break = "\n" [, bool $cut = FALSE ]]] ) : string
// 使用字符串断点将字符串打断为指定数量的字串。
$text = "A very long woooooooooooooooooord. and something";
$newtext = wordwrap($text, 8, "\n", false);
echo "$newtext\n";

A very
long
woooooooooooooooooord.
and
something
  • str_split — 将字符串转换为数组
// 说明 str_split ( string $string [, int $split_length = 1 ] ) : array
$str = "abc";

$arr1 = str_split($str);    // ['a','b','c'];
$arr2 = str_split($str, 2); // ['ab','c']
  • implode — 将一个一维数组的值转化为字符串
// 说明 implode ( string $glue , array $pieces ) : string
// implode ( array $pieces ) : string
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone
  • explode — 使用一个字符串分割另一个字符串,返回数组
// 说明 explode ( string $delimiter , string $string [, int $limit ] ) : array
$input = "hello,there";
var_dump( explode( ',', $input ) ); // ['hello','there']

2019-03-19 字符串加密函数

  • crypt — 单向字符串散列
// 说明 crypt ( string $str [, string $salt ] ) : string
// crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。
$hashed_password = crypt('mypassword'); // 自动生成盐值

/* 你应当使用 crypt() 得到的完整结果作为盐值进行密码校验,以此来避免使用不同散列算法导致的问题。(如上所述,基于标准 DES 算法的密码散列使用 2 字符盐值,但是基于 MD5 算法的散列使用 12 个字符盐值。)*/
if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) {
   echo "Password verified!";
}
  • hash_equals — 可防止时序攻击的字符串比较
// 说明 hash_equals ( string $known_string , string $user_string ) : bool
// 比较两个字符串,无论它们是否相等,本函数的时间消耗是恒定的。
$expected  = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct   = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('apple',  '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
  • password_hash — 创建密码的散列(hash)
// 说明 password_hash ( string $password , int $algo [, array $options ] ) : string
// password_hash() 使用足够强度的单向散列算法创建密码的散列(hash)。 password_hash() 兼容 crypt()。 所以, crypt() 创建的密码散列也可用于 password_hash()。
// 返回散列后的密码, 或者在失败时返回 FALSE。

// 使用的算法、cost 和盐值作为散列的一部分返回。所以验证散列值的所有信息都已经包含在内。 这使 password_verify() 函数验证的时候,不需要额外储存盐值或者算法的信息。
/**
 * 在这个案例里,我们为 BCRYPT 增加 cost 到 12。
 * 注意,我们已经切换到了,将始终产生 60 个字符。
 */
$options = [
    'cost' => 12,
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options);
?>
  • password_verify — 验证密码是否和散列值匹配
// 说明 password_verify ( string $password , string $hash ) : bool
// 注意 password_hash() 返回的散列包含了算法、 cost 和盐值。 因此,所有需要的信息都包含内。使得验证函数不需要储存额外盐值等信息即可验证哈希。
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}

2019-03-20 字符串加密函数

  • md5 — 计算字符串的 MD5 散列值
// 说明 md5 ( string $str [, bool $raw_output = FALSE ] ) : string
// 以 32 字符十六进制数字形式返回散列值。
$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Would you like a green or red apple?";
}
  • md5_file — 计算指定文件的 MD5 散列值
// 说明 md5_file ( string $filename [, bool $raw_output = FALSE ] ) : string
// 使用 » RSA 数据安全公司的 MD5 报文算法计算 filename 文件的 MD5 散列值并返回。该散列值为 32 字符的十六进制数字。

md5_file($file);
  • sha1 — 计算字符串的 sha1 散列值
// 说明 sha1 ( string $str [, bool $raw_output = false ] ) : string
// 利用» 美国安全散列算法 1 计算字符串的 sha1 散列值。
sha1($str)  // 'd0be2dc421be4fcd0172e5afceea3970e2f3d940'
  • sha1_file — 计算文件的 sha1 散列值
// 说明 sha1_file ( string $filename [, bool $raw_output = FALSE ] ) : string
// 利用» 美国安全散列算法 1,计算并返回由 filename 指定的文件的 sha1 散列值。该散列值是一个 40 字符长度的十六进制数字。
sha1_file($ent)

2019-04-22 字符串编码函数

  • urlencode — 编码 URL 字符串
// 说明 urlencode ( string $str ) : string
// 返回字符串,此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样
urlencode($userinput)
  • urldecode — 解码已编码的 URL 字符串
// 说明 urldecode ( string $str ) : string
// 解码给出的已编码字符串中的任何 %##。 加号('+')被解码成一个空格字符。
urldecode($str)
// 注意 
  • base64_encode — 使用 MIME base64 对数据进行编码
// 说明 base64_encode ( string $data ) : string
// 使用 base64 对 data 进行编码。
// Base64-encoded 数据要比原始数据多占用 33% 左右的空间。
// 失败时返回 FALSE
echo 'This is an encoded string'
VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==
  • base64_decode — 对使用 MIME base64 编码的数据进行解码
// 说明 base64_decode ( string $data [, bool $strict = false ] ) : string
// 当设置 strict 为 TRUE 时,一旦输入的数据超出了 base64 字母表,将返回 FALSE。 否则会静默丢弃无效的字符。
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
This is an encoded string
  • htmlentities — 将字符转换为 HTML 转义字符
// 说明 htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] ) : string
// 本函数各方面都和 htmlspecialchars() 一样, 除了 htmlentities() 会转换所有具有 HTML 实体的字符。
// 如果要解码(反向操作),可以使用 html_entity_decode()。
htmlentities($str);

2019-04-23 字符串大小写函数

  • lcfirst — 使一个字符串的第一个字符小写 (lower Case first)
$bar = 'HELLO WORLD!';
$bar = lcfirst($bar); // hELLO WORLD!
  • ucfirst — 将字符串的首字母转换为大写
$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!
  • ucwords — 将字符串中每个单词的首字母转换为大写
$foo = 'hello world!';
$foo = ucwords($foo);             // Hello World!
  • strtolower — 将字符串转化为小写
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);        // mary had a little lamb and she loved it so
  • strtoupper — 将字符串转化为大写
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);        // MARY HAD A LITTLE LAMB AND SHE LOVED IT SO

2019-04-24 字符串处理函数

  • strip_tags — 从字符串中去除 HTML 和 PHP 标记
说明 strip_tags ( string $str [, string $allowable_tags ] ) : string
  • strrev — 反转字符串
echo strrev("Hello world!"); // 输出 "!dlrow olleH"

$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);     // Test paragraph. Other text

// 允许 <p> 和 <a>
echo strip_tags($text, '<p><a>');       // <p>Test paragraph.</p> <a href="#fragment">Other text</a>
  • str_shuffle — 随机打乱一个字符串
str_shuffle('abcdef');  // bfdaec

2019-04-25 数组打乱和排序函数

  • shuffle — 打乱数组
说明 shuffle ( array &$array ) : bool
$numbers = range(1, 20);
shuffle($numbers);
  • array_rand — 从数组中随机取出一个或多个单元
说明 array_rand ( array $array [, int $num = 1 ] ) : mixed
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
  • array_multisort — 对多个数组或多维数组进行排序
说明 array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] ) : bool
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);

array(4) {
  [0]=> int(0)
  [1]=> int(10)
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(4)
  [1]=> int(1)
  [2]=> int(2)
  [3]=> int(3)
}
  • asort — 对数组进行排序并保持索引关系(由低到高)
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
c = apple
b = banana
d = lemon
a = orange
  • arsort — 对数组进行逆向排序并保持索引关系(由高到低)
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
a = orange
d = lemon
b = banana
c = apple
  • ksort — 对数组按照键名排序(由低到高)
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}

a = orange
b = banana
c = apple
d = lemon
  • krsort — 对数组按照键名逆向排序(由高到低)
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}

d = lemon
c = apple
b = banana
a = orange
  • natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序
// 说明 natcasesort ( array &$array ) : bool
// natcasesort() 是 natsort() 函数的不区分大小写字母的版本。
// 本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键/值的关联,这被称为“自然排序”。
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

sort($array1);

natcasesort($array2);

[0] => IMG0.png
[1] => IMG3.png
[2] => img1.png
[3] => img10.png
[4] => img12.png
[5] => img2.png

[0] => IMG0.png
[4] => img1.png
[3] => img2.png
[5] => IMG3.png
[2] => img10.png
[1] => img12.png
  • natsort — 用“自然排序”算法对数组排序
// 说明 natsort ( array &$array ) : bool
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

natsort($array2);

[3] => img1.png
[2] => img2.png
[1] => img10.png
[0] => img12.png
  • rsort — 对数组逆向排序(最高到最低)
// 说明 rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}

0 = orange
1 = lemon
2 = banana
3 = apple
  • sort — 对数组排序(最低到最高)
// 说明 sort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}

0 = apple
1 = banana
2 = lemon
3 = orange

2019-04-26 数组函数

  • array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
// array_combine ( array $keys , array $values ) : array
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)
  • array_merge — 合并一个或多个数组
// array_merge ( array $array1 [, array $... ] ) : array
// 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
// 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);

Array
(
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
)
  • array_replace — 使用传递的数组替换第一个数组的元素
// array_replace ( array $array1 [, array $... ] ) : array
// array_replace() 函数使用后面数组元素相同 key 的值替换 array1 数组的值。如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。如果一个键仅存在于第一个数组,它将保持不变。如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
// array_replace() 是非递归的:它将第一个数组的值进行替换而不管第二个数组中是什么类型。
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");

$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);

Array
(
    [0] => grape
    [1] => banana
    [2] => apple
    [3] => raspberry
    [4] => cherry
)
  • array_replace_recursive — 使用传递的数组递归替换第一个数组的元素
// array_replace_recursive ( array $array1 [, array $... ] ) : array
// array_replace_recursive() 使用后面数组元素的值替换数组 array1 的值。如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。如果一个键仅存在于第一个数组,它将保持不变。 如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
// array_replace_recursive() 是递归的:它将遍历数组并将相同的处理应用到数组的内部值。
// 如果第一个数组中的值是标量,它的值将被第二个数组中的值替换,它可能是一个标量或者数组。如果第一个数组和第二个数组中的值都是数组,array_replace_recursive() 函数将递归地替换它们各自的值。

$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));

$basket = array_replace_recursive($base, $replacements);
print_r($basket);

$basket = array_replace($base, $replacements);
print_r($basket);

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )
    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )
)
Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )
    [berries] => Array
        (
            [0] => blueberry
        )
)

2019-05-06 数组函数

  • array_walk — 使用用户自定义函数对数组中的每个元素做回调处理
array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] ) : bool

$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

function test_alter(&$item1, $key, $prefix)
{
    $item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
    echo "$key. $item2<br />\n";
}

echo "Before ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";

array_walk($fruits, 'test_print');

Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple
  • list — 把数组中的值赋给一组变量
list ( mixed $var1 [, mixed $... ] ) : array
$info = array('coffee', 'brown', 'caffeine');

// 列出所有变量
list($drink, $color, $power) = $info;

[$drink, $color, $power] = $info;
  • array_map — 为数组的每个元素应用回调函数
array_map ( callable $callback , array $array1 [, array $... ] ) : array
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)
  • array_diff — 计算数组的差集
array_diff ( array $array1 , array $array2 [, array $... ] ) : array
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

Array
(
    [1] => blue
)
  • array_pop
  • array_push
  • array_search
  • array_shift
  • array_unshift
  • array_unique
  • array_slice
  • in_array
  • compact
  • array_keys
  • array_reverse
  • count
  • array_splice
  • array_sum
  • array_values
  • array_keys_exists
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!