php - 将十六进制值的字符串转换为 PHP 中 boolean 值的数组

标签 php arrays boolean hex

我在我正在开发的网站中发现了一段巧妙的代码,它使用十六进制值来存储可切换变量的数组。

(例如,十六进制的 D 为二进制的 1101,表示第一个切换为 1,第二个切换为关闭,第三个和第四个切换为打开)。

我查看了 unpack,但要么我不理解它,要么它不是适合我的功能。我还考虑过将整个内容逐个字符地拆分,然后通过开关发送每个字符,然后将值放入数组中,但这似乎太麻烦且不优雅。

那么,如何将基于十六进制的字符字符串转换为 boolean 值的有序数组?

最佳答案

怎么样:

function hex_to_bool_array($hex_string, $pad_length = 0) {
   return array_map(
      function($v) { return (bool) $v; },
      str_split(str_pad(base_convert($hex_string, 16, 2), $pad_length, '0', STR_PAD_LEFT))
   );
}

var_dump(hex_to_bool_array('D'));

// array (size=4)
//   0 => boolean true
//   1 => boolean true
//   2 => boolean false
//   3 => boolean true;

var_dump(hex_to_bool_array('7', 8));

// array (size=8)
// 0 => boolean false
// 1 => boolean false
// 2 => boolean false
// 3 => boolean false
// 4 => boolean false
// 5 => boolean true
// 6 => boolean true
// 7 => boolean true

关于php - 将十六进制值的字符串转换为 PHP 中 boolean 值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32705949/

相关文章:

php - 通过 PHP 运行 ffmpeg

PHP - 开始使用命名空间

c++ - 如何使用基本循环创建二维数组矩阵

c - boolean 抽象 C 程序

c# - 读取 POST 请求 XML - boolean 值始终读取为 false

php - 获取一个sql结果集的单值

php - Laravel 内连接说变量未定义

python - 我有一个单词列表。我想添加一个与每个单词关联的计数器变量。我该怎么做呢?

javascript - 转换插入空值的数组数组,Javascript

c++ - 在计算中使用 boolean 值以避免分支