Current Location: Home> Latest Articles> How to Convert a Boolean Array to a Decimal Number Using bindec()? A Simple Mapping Method

How to Convert a Boolean Array to a Decimal Number Using bindec()? A Simple Mapping Method

M66 2025-06-23

In PHP, processing boolean arrays and converting them to decimal numbers is a common requirement, especially in data mapping, access control, or binary flag handling. This article will introduce how to use PHP’s built-in function bindec() along with boolean arrays to achieve a simple and efficient conversion from a boolean array to a decimal number.


1. Introduction to bindec()

bindec() is a PHP function used to convert binary strings into decimal numbers. For example:

<?php
echo bindec("1011"); // Outputs 11
?>

It takes a string consisting of '0' and '1' characters and returns the corresponding decimal integer.


2. Conversion Idea for Boolean Arrays

Elements in a boolean array are true or false, which we can treat as binary digits 1 and 0. For example:

$array = [true, false, true]; // Corresponds to binary 101

The steps are:

  1. Map the boolean array to a string of '1' and '0'.

  2. Use bindec() to convert the string into a decimal number.


3. Code Example

Below is a complete code example that shows how to convert a boolean array into a decimal number:

<?php
// Boolean array
$boolArray = [true, false, true, true]; // Corresponds to binary 1011
<p>// Convert boolean values to '1' or '0'<br>
$binaryString = implode('', array_map(function($b) {<br>
return $b ? '1' : '0';<br>
}, $boolArray));</p>
<p>// Use bindec() to convert to a decimal number<br>
$decimalNumber = bindec($binaryString);</p>
<p>echo "The binary string converted from the boolean array is: " . $binaryString . "\n";<br>
echo "The resulting decimal number is: " . $decimalNumber . "\n";<br>
?><br>

Output:

The binary string converted from the boolean array is: 1011
The resulting decimal number is: 11

4. Application Scenarios

  • Access Control: Use boolean arrays to represent permissions, convert them to decimal permission codes for storage in a database, making them easier to query.

  • Flag Mapping: Map multiple boolean flags into a single number for easier data compression and transmission.

  • State Encoding: Binary encoding of device or system states.


5. Notes

  • The order of boolean values in the array determines the order of the binary digits, with the first element of the array typically corresponding to the highest bit.

  • If the boolean array is empty, the conversion result is 0.

  • If the array contains non-boolean types, it is recommended to perform type checking or conversion first.


6. Advanced Extension: Dynamic Length Mapping

You can convert boolean arrays of any length, which is useful for dynamic flag management:

<?php
function boolArrayToDecimal(array $boolArray): int {
    $binaryString = implode('', array_map(fn($b) => $b ? '1' : '0', $boolArray));
    return bindec($binaryString);
}
<p>// Example call<br>
$flags = [false, true, true, false, true]; // Binary 01101<br>
echo boolArrayToDecimal($flags); // Outputs 13<br>
?><br>


Through the example in this article, you have learned how to use PHP’s bindec() function along with boolean arrays to implement a simple mapping conversion. We hope you can apply this technique in your development to improve coding efficiency and maintainability.