php - 我应该使用 PHP 'SORT_FLAG_CASE' 和按位 AND 或按位 OR 使用 sort() 函数对数组大小写不敏感吗?
问题描述
假设你得到了一个数组,比如,
$books = array('Book21','BOOK22','book20');.
哪个是正确的运算符(按位与或按位或)与SORT_FLAG_CASE
和SORT_STRING
标志一起使用以不区分大小写对该数组进行排序?因为在http://php.net/manual/en/function.sort.php中,似乎只提到了按位 OR 运算符。
我目前使用 PHP 7.2 版。
谢谢你。
解决方案
您需要按位或运算符|
或只是加法运算符+
。
SORT_FLAG_CASE | SORT_STRING
如果您转储这些值,您会注意到它们的价值如下:
SORT_FLAG_CASE int(8)
SORT_STRING int(2)
或者,二进制:
SORT_FLAG_CASE 00001000
SORT_STRING 00000010
即,像这样的标志通常是只有一个位设置的整数。因此,通过对它们进行按位或运算,您可以打开所有组合标志:
00001000 SORT_FLAG_CASE
00000010 SORT_STRING
00001010 SORT_FLAG_CASE | SORT_FLAG_CASE
如果您使用按位与,您将一无所获。
00001000 SORT_FLAG_CASE
00000010 SORT_STRING
00000000 SORT_FLAG_CASE & SORT_FLAG_CASE
推荐阅读
- c# - c# 在不同版本的 Windows 之间显示 unicode 卡套装时出现问题
- .net - 在现有 .NET 4.0 的构建服务器中安装 .NET 4.6 的效果
- sql - 如何在没有聚合的情况下进行旋转?
- r - 在 plyr 中排列函数
- c++ - VS代码C++:“退出代码= 3221225785”
- python - 有效地“完成”一组算法
- laravel - 如何解决 Laravel 5 上的 Error500 Http\Kernel::class
- android - 即使添加了 startForegroundService 和 startForeground 也会在后台中断服务
- c# - 从位图中制作一个 int32[] 位?
- c# - HttpClient 限制每秒数据请求数