日常工作中遇到一些代码流程中使用到了之前没有关注过的PHP数组内置函数,做一下学习笔记记录:
1、array_change_key_case() 函数
array_change_key_case() 函数将数组的所有的键都转换为大写字母或小写字母。
数组的数字索引不发生变化。如果未提供可选参数(即第二个参数),则默认转换为小写字母。
提示和注释
注释:如果在运行该函数时两个或多个键相同,则最后的元素会覆盖其他元素(参见例:1-2)。
语法
array_change_key_case(array,case);
参数 | 描述 |
---|
array | 必需。规定要使用的数组。 | case | 可选。可能的值:
- CASE_LOWER - 默认值。将数组的键转换为小写字母。
- CASE_UPPER - 将数组的键转换为大写字母。
|
技术细节
返回值: | 返回键为大写或小写的数组,或者如果?array?非数组则返回 FALSE。 | PHP 版本: | 4.2+ |
例1-1:
<?php
$age = array(
"Bill" => "60",
"Steve" => "56",
"Mark" => "31"
);
// 小写
print_r(array_change_key_case($age, CASE_LOWER));
// 结果:
/*
Array
(
[bill] => 60
[steve] => 56
[mark] => 31
)
*/
// 大写
print_r(array_change_key_case($age, CASE_UPPER));
/*
Array
(
[BILL] => 60
[STEVE] => 56
[MARK] => 31
)
*/
?>
例1-2:
<?php
$pets = array(
"a" => "Cat",
"B" => "Dog",
"c" => "Horse",
"b" => "Bird"
);
print_r(array_change_key_case($pets, CASE_UPPER));
/*
Array
(
[A] => Cat
[B] => Bird
[C] => Horse
)
*/
?>
2、substr_count() 函数
substr_count() 函数计算子串在字符串中出现的次数。
注释:子串是区分大小写的。
注释:该函数不计数重叠的子串(参见例子2-3)。
注释:如果?start?参数加上?length?参数大于字符串长度,则该函数生成一个警告(参见例子 2-4)。
substr_count(string,substring,start,length)
参数 | 描述 |
---|
string | 必需。规定被检查的字符串。 | substring | 必需。规定要搜索的字符串。 | start | 可选。规定在字符串中何处开始搜索。 | length | 可选。规定搜索的长度。 |
技术细节
返回值: | 返回子串在字符串中出现的次数。 | PHP 版本: | 4+ | 更新日志: | 在 PHP 5.1 中,新增了?start?和?length?参数。 |
例2-1:
<?php
echo substr_count("I love Shanghai. Shanghai is the biggest city in china.", "Shanghai");
// 结果为2
?>
例2-2:
<?php
$str = "This is nice";
// 字符串中 "is" 出现的次数,结果为:2
echo substr_count($str, "is");
// 字符串缩减为 "is is nice",结果为:2
echo substr_count($str, "is", 2);
// 字符串缩减为 "s is nice",结果为:1
echo substr_count($str, "is", 3);
// 字符串缩减为 "s i",结果为:0
echo substr_count($str, "is", 3, 3);
?>
例2-3:重叠的子串:
<?php
$str = "abcabcab";
// 此函数不会对重叠的子字符串计数,结果为1
echo substr_count($str, "abcab");
?>
例2-4:如果?start?和?length?参数超过字符串长度,则该函数会输出一个警告:
<?php
$str = "This is nice";
// 因为长度值超过字符串的长度(3 + 10 大于 12),使用会输出一个警告。
echo substr_count($str, "is", 3, 10);
// 结果为:
// Warning: substr_count(): Invalid length value in /box/script.php on line 4
?>
|