Aktueller Standort: Startseite> Neueste Artikel> So konvertieren Sie das Boolesche Array in Dezimalberechtigungscode mit Binesec ()

So konvertieren Sie das Boolesche Array in Dezimalberechtigungscode mit Binesec ()

M66 2025-05-29

In der Webentwicklung müssen wir häufig eine Reihe von Berechtigungen für Benutzer festlegen. Um die Speicherung und Übertragung von Berechtigungen zu vereinfachen, kann der Berechtigungszustand zu einer Ganzzahl komprimiert werden. Die BindEc -Funktion von PHP kann uns helfen, eine binäre Zeichenfolge in eine Dezimalbezahlung umzuwandeln, die für die Codierung und Dekodierung von Berechtigungscodes geeignet ist.

1. Struktur des Berechtigungsarrays

Angenommen, wir haben eine Reihe von booleschen Werten, die den Berechtigungsstatus des Benutzers darstellen, beispielsweise:

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

Jeder boolesche Wert stellt eine Erlaubnis dar, wahr , dass er die Erlaubnis hat. Falsch bedeutet, dass er nicht über die Erlaubnis verfügt. Wir möchten dieses Array in eine Dezimalbezahlung umwandeln, um einen einfachen Speicher und Vergleich zu erhalten.

2. So verwenden Sie BindEc

Binec ist eine integrierte Funktion in PHP, die eine binäre Zeichenfolge in eine Dezimalzahl umwandelt. Die Verwendung ist wie folgt:

 $decimal = bindec('1011'); // sich herausstellen11

Wie kann man also ein Boolean -Array in ein Format wie '1011' umwandeln?

3. Kompletter Beispielcode

 <?php

function convertPermissionsToDecimal(array $boolArray): int {
    // Konvertieren Sie die Booleschen Werte in binäre Zeichenfolgen
    $binaryString = '';
    foreach ($boolArray as $bool) {
        $binaryString .= $bool ? '1' : '0';
    }

    // verwenden bindec In Dezimalheit konvertieren
    return bindec($binaryString);
}

// Beispiel
$permissions = [true, false, true, true]; // Zeigt an, dass Sie eine haben1、1.3、1.4Berechtigungen
$decimalCode = convertPermissionsToDecimal($permissions);

echo "Der Erlaubnisdezimalcode ist:$decimalCode"; // Ausgabe:Der Erlaubnisdezimalcode ist:11

In diesem Code schleifen wir das Boolesche Array durch, konstruieren eine entsprechende Binärziele und rufen dann Bindec auf, um sie in Dezimal zu konvertieren.

V.

Wenn wir einen Dezimalberechtigungscode aus der Datenbank lesen, können wir ihn auch umgekehrt in ein Boolean -Array wiederherstellen. Die Methode lautet wie folgt:

 <?php

function convertDecimalToPermissions(int $decimal, int $length): array {
    // Konvertieren Sie in eine binäre Zeichenfolge und ergänzen Sie die angegebene Anzahl von Bits
    $binaryString = str_pad(decbin($decimal), $length, '0', STR_PAD_LEFT);

    // In Boolean Array konvertieren
    return array_map(fn($bit) => $bit === '1', str_split($binaryString));
}

// Beispiel:Reduktion11für Boolesche Array
$restored = convertDecimalToPermissions(11, 4);

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

5. Praktische Anwendungsszenarien

Diese Methode ist sehr praktisch, um Benutzerberechtigungen, Rollensteuerung, Konfigurationselemente und andere Systeme festzulegen. Im Hintergrund des Benutzerverwaltungshinweise wie https://m66.net/admin/users können wir die Berechtigungen jedes Benutzers in ein Feld komprimieren und in der Datenbank speichern, um die Effizienz und Sicherheit zu verbessern.

Zusammenfassen

Mit der Bindec -Funktion können wir boolesche Berechtigungsarrays problemlos in kompakte Dezimalcodes umwandeln und die Speicherung und Berechnungen vereinfachen. Mit Decbin und einer angemessenen String -Verarbeitung ist die Berechtigungsverwaltung effizienter und systematischer.