2021-11-04工作问题学习记录

本文介绍了PHP中的两个数组处理函数:array_change_key_case用于转换数组键的大小写,substr_count用于计算字符串中子串出现的次数。array_change_key_case函数可以将数组的所有键转换为全大写或全小写,同时指出如果有重复键,后出现的会覆盖先出现的。substr_count函数则计算子串在字符串中的非重叠出现次数,并举例说明了其用法和注意事项。

日常工作中遇到一些代码流程中使用到了之前没有关注过的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

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值