acf_update_nested_array()


ACFの関数acf_update_nested_array()は、多次元配列内の特定の値を更新するために使用されます。この関数は、ACFデータやその他のカスタムデータ構造の操作に役立ちます。

構文

acf_update_nested_array( array &$array, array $keys, mixed $value );

引数の説明:

  • $array (array) — 更新対象の多次元配列(参照渡し)。
  • $keys (array) — 更新する配列のキーのパス。
  • $value (mixed) — 指定されたキーに設定する新しい値。

例 1: 配列内の特定の値を更新

以下は、配列内のネストされたキーを指定して値を更新する基本例です。

<?php
$array = ['settings' => ['theme' => 'light']];
acf_update_nested_array($array, ['settings', 'theme'], 'dark');
?>

例 2: 配列に新しいネストされた値を追加

存在しないキーを指定すると、新しい要素が追加されます。

<?php
$array = ['settings' => ['theme' => 'light']];
acf_update_nested_array($array, ['settings', 'layout'], 'grid');
?>

例 3: 配列に深いネストを設定

複数レベルのネストを持つ配列を更新します。

<?php
$array = ['user' => ['profile' => ['name' => 'John']]];
acf_update_nested_array($array, ['user', 'profile', 'age'], 30);
?>

例 4: 空の配列を初期化して値を設定

空の配列を対象にして、新しいネスト構造を作成します。

<?php
$array = [];
acf_update_nested_array($array, ['settings', 'theme'], 'light');
?>

例 5: 配列内の既存値を条件付きで更新

特定の条件に基づいて値を更新します。

<?php
$array = ['settings' => ['theme' => 'light']];
if ($array['settings']['theme'] === 'light') {
    acf_update_nested_array($array, ['settings', 'theme'], 'dark');
}
?>

注意事項

  • $arrayは参照渡しであるため、元の配列に直接変更が反映されます。
  • キーのパスが存在しない場合は、自動的に新しいキーが作成されます。