現在の位置: ホーム> 最新記事一覧> bindec()を使用してブールアレイを小数の許可コードに変換する方法

bindec()を使用してブールアレイを小数の許可コードに変換する方法

M66 2025-05-29

Web開発では、ユーザーに一連のアクセス許可を設定する必要があることがよくあります。権限のストレージと送信を簡素化するために、許可状態を整数に圧縮できます。 PHPのBINDEC関数は、バイナリ文字列を小数整数に変換するのに役立ちます。これは、許可コードのエンコードとデコードに適しています。

1。許可配列の構造

たとえば、ユーザーの許可ステータスを表す一連のブール値があるとします。

 $permissions = [true, false, true, true];

各ブール値は許可を表し、真のことは許可を持っていることを意味し、偽は許可を持たないことを意味します。この配列を小数点以下の整数に変換して、簡単に保存して比較します。

2。Bindecの使用方法

Bindecは、バイナリ文字列を小数点以下に変換するPHPの組み込み関数です。使用法は次のとおりです。

 $decimal = bindec('1011'); // 消す11

それでは、ブールアレイを「1011」のような形式に変換する方法は?

3。サンプルコードを完了します

<?php

function convertPermissionsToDecimal(array $boolArray): int {
    // ブール値をバイナリ文字列に変換します
    $binaryString = '';
    foreach ($boolArray as $bool) {
        $binaryString .= $bool ? '1' : '0';
    }

    // 使用 bindec 小数に変換します
    return bindec($binaryString);
}

// 例
$permissions = [true, false, true, true]; // あなたが持っていることを示します1、第3、第4権限
$decimalCode = convertPermissionsToDecimal($permissions);

echo "許可小数点コードはです:$decimalCode"; // 出力:許可小数点コードはです:11

このコードでは、ブールアレイをループし、対応するバイナリ文字列を作成し、 Bindecを呼び出して小数に変換します。

4。Advanced:許可配列を復元します

データベースから小数の許可コードを読むと、逆にブールアレイに復元することもできます。この方法は次のとおりです。

 <?php

function convertDecimalToPermissions(int $decimal, int $length): array {
    // バイナリ文字列に変換し、指定されたビット数を補完する
    $binaryString = str_pad(decbin($decimal), $length, '0', STR_PAD_LEFT);

    // ブールアレイに変換します
    return array_map(fn($bit) => $bit === '1', str_split($binaryString));
}

// 例:削減11ブールアレイ用
$restored = convertDecimalToPermissions(11, 4);

print_r($restored); // 出力:[true, false, true, true]

5。実用的なアプリケーションシナリオ

この方法は、ユーザー許可、役割制御、構成アイテム、その他のシステムを設定するのに非常に実用的です。たとえば、 https://m66.net/admin/usersのようなユーザー管理の背景では、各ユーザーの権限をフィールドに圧縮し、データベースに保存して効率とセキュリティを改善できます。

要約します

BINDEC関数を使用すると、ブールの許可配列をコンパクト10進コードに簡単に変換し、ストレージと計算を簡素化できます。 Decbinと適切な文字列処理により、許可管理はより効率的かつ体系的になります。