Aktueller Standort: Startseite> Neueste Artikel> Legen Sie den Standardwert der Cache -Struktur in Stapeln ein

Legen Sie den Standardwert der Cache -Struktur in Stapeln ein

M66 2025-05-17

In der Entwicklung müssen wir häufig einheitliche Standardwerte für eine Reihe von Schlüsselnamen festlegen, insbesondere in Szenarien, in denen Cache, Konfigurationsinitialisierung oder Datennormalisierung durchgeführt werden. Die integrierte Funktion von PHP von Array_Fill_keys () kann dieses Problem sehr elegant lösen und uns helfen, redundanten Code zu reduzieren, die Lesbarkeit der Code und die Ausführungseffizienz zu verbessern.

In diesem Artikel wird der Standardwert der Cache -Struktur als Beispiel verwendet, um zu erklären, wie Sie array_fill_keys () verwenden, um dieses Ziel zu erreichen.

1. Einführung in Array_Fill_keys ()

Array_Fill_Keys () ist eine von PHP bereitgestellte Array -Funktion, um die angegebenen Schlüssel im Array mit dem angegebenen Wert zu füllen.

Funktionsdefinition:

 array array_fill_keys(array $keys, mixed $value)
  • $ KEYS : Ein Array mit allen Schlüsselnamen.

  • $ Wert : Der Standardwert, der jedem Schlüssel zugewiesen wird.

Beispiel:

 $keys = ['user_1', 'user_2', 'user_3'];
$defaultValue = null;
$cache = array_fill_keys($keys, $defaultValue);

print_r($cache);

Ausgabe:

 Array
(
    [user_1] => 
    [user_2] => 
    [user_3] => 
)

2. Anwendungsszenario: Setzen Sie den Standardwert der Cache -Struktur in Stapeln

Stellen Sie sich ein typisches Szenario vor: Sie erstellen eine System -Cache -Struktur, in der Sie die zwischengespeicherten Daten gemäß der Benutzer -ID in ein vordefiniertes Array initialisieren müssen, z. B.:

 $defaultCacheValue = [
    'profile' => null,
    'settings' => [],
    'last_login' => null,
];

Sie haben mehrere Benutzer -IDs:

 $userIds = [101, 102, 103, 104];

Wenn Sie diese Strukturen manuell initialisieren, wird es langwierig und schwer zu pflegen. Verwenden Sie Array_Fill_Keys () , um es leicht zu tun:

 $keys = array_map(function ($id) {
    return "user_cache_$id";
}, $userIds);

$cacheStructure = array_fill_keys($keys, $defaultCacheValue);

print_r($cacheStructure);

Ausgangsergebnis:

 Array
(
    [user_cache_101] => Array
        (
            [profile] => 
            [settings] => Array
                (
                )

            [last_login] => 
        )

    [user_cache_102] => Array
        (
            [profile] => 
            [settings] => Array
                (
                )

            [last_login] => 
        )
    ...
)

3. Erhalten Sie dynamisch Cache -Schlüsselnamen und initialisieren Sie die Standardstruktur

Wenn Ihre Benutzer -ID aus der Datenbank oder API erhalten wird, können Sie auch Array_Column () und andere Funktionen verwenden, um sie dynamisch zu verarbeiten:

 // Annehmen von API Gibt die folgende Struktur zurück
$userData = [
    ['id' => 201, 'name' => 'Alice'],
    ['id' => 202, 'name' => 'Bob'],
    ['id' => 203, 'name' => 'Charlie'],
];

$userIds = array_column($userData, 'id');

$keys = array_map(function ($id) {
    return "user_cache_$id";
}, $userIds);

$defaultCache = [
    'profile_url' => 'https://m66.net/user/default',
    'status' => 'offline',
    'messages' => [],
];

$cache = array_fill_keys($keys, $defaultCache);

print_r($cache);

4. Tipps

  1. Hinweis für unveränderliche Strukturen : Wenn Sie den Standardwert der Polsterung ändern, wirkt sich alle Schlüssel aus, da sich das Array auf dieselbe Struktur bezieht. Wenn Sie möchten, dass jeder Schlüssel eine unabhängige Struktur hat, müssen Sie sie manuell kopieren:

 $cache = [];
foreach ($keys as $key) {
    $cache[$key] = $defaultCache; // Wenn defaultCache Es ist das Objekt,Tiefe Kopie ist erforderlich
}
  1. Es ist leistungsfähiger, mit Array_MAP zu verwenden : Kombination von Array_Map , Array_Column , Array_combine und anderen Funktionen können eine sehr prägnante und flexible Datenverarbeitungslogik schreiben.

5. Zusammenfassung

Array_Fill_Keys () ist eine sehr praktische Funktion in PHP, insbesondere für Stapelfüllungsstrukturen während der Initialisierungsphase. Unabhängig davon, ob Sie Cache -Initialisierung, Datennormalisierung oder Konfigurationsvoreinstellungen durchführen, kann der ordnungsgemäße Verwenden dieser Funktion Ihren Code ordentlicher und eleganter machen.