対応するキーが別のフラット連想配列で見つかった場合、多次元配列の値を変更したいと考えています。
次の 2 つの配列があります:
配列を次のようにしたい:
入力フィールドから $semi 配列を取得し、それを $full にマージしてデータベースに保存したいと考えています。
私は array_replace() を次のように試しました:
array_replace()
「リーフノード」にアクセスし、array_walk_recursive() を使用して配列全体を直接反復して変更するだけです。
array_walk_recursive()
最新の「アロー関数」構文を使用すると、use() を記述せずに半分の配列にアクセスできます。
use()
このメソッドは関数呼び出しを反復することはありません。これは、「加算代入」結合演算子 ( =) と null 結合演算子 () を使用して、参照によって $v を変更します (&$v)。 ? ?) 配列の半分にある配列全体の値を条件付きでインクリメントします。
=
) を使用して、参照によって
を変更します (
)。 ? ?
コード: (デモ)
array_walk_recursive() を使用しない場合は、ネストされたループを使用して認定メーカーを追加する必要があります。
$semi 配列をループし、それが $full 配列の 1 つに存在するかどうかを確認してから、それに追加する必要があります。 リーリー
$semi
$full
「リーフノード」にアクセスし、
array_walk_recursive()
を使用して配列全体を直接反復して変更するだけです。最新の「アロー関数」構文を使用すると、
use()
を記述せずに半分の配列にアクセスできます。このメソッドは関数呼び出しを反復することはありません。これは、「加算代入」結合演算子 (
=
) と null 結合演算子 () を使用して、参照によって
$vを変更します (
&$v)。 ? ?
) 配列の半分にある配列全体の値を条件付きでインクリメントします。コード: (デモ)
リーリーarray_walk_recursive()
を使用しない場合は、ネストされたループを使用して認定メーカーを追加する必要があります。コード: (デモ)
リーリー$semi
配列をループし、それが$full
配列の 1 つに存在するかどうかを確認してから、それに追加する必要があります。 リーリー