開発では配列を操作する必要がよくありますが、一般的な要件の 1 つは、キー名を「user_id」から「id」に置き換えるなど、配列内のキー名を置き換えることです。 PHPでは、配列のarray_combineやarray_valuesなどの関数を使用して置換できますが、これらの関数にはいくつかの制限があるため、キー値を同じ配列に置換するには別の方法を使用する必要があります。
1. array_map 関数を使用する
PHP の array_map 関数を使用すると、配列内の各キーまたは値にコールバック関数を適用できます。この関数を使用すると、配列の各要素にコールバック関数を適用してキー名を置き換えることができます。
サンプル コード:
$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20]; $new_arr = array_map(function($key) { if($key == 'user_id') { return 'id'; } return $key; }, array_keys($arr)); $arr = array_combine($new_arr, array_values($arr));
上記のコードでは、array_map 関数を使用して、配列内の各キー名にコールバック関数を適用します。キー名が "user_id" の場合は、置換します。それ以外の場合は、元のキー名を返します。次に、array_combine 関数を使用して、新しいキー名と元の値を新しい配列に再結合します。
2. foreach ループを使用する
同じ配列内のキー名を置換するもう 1 つの方法は、PHP の foreach ループを使用して配列を走査することです。元の配列の各要素を新しい配列にコピーできますが、コピー時に元の配列のキー名を変更します。
サンプル コード:
$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20]; $new_arr = []; foreach($arr as $key => $value) { if($key == 'user_id') { $key = 'id'; } $new_arr[$key] = $value; } $arr = $new_arr;
上記のコードでは、新しい配列 $new_arr を使用して、元の配列の各要素を新しい配列にコピーします。コピー時に元の配列のキー名が「user_id」の場合は「id」に置き換えます。
3. array_reduce 関数を使用する
array_reduce 関数を使用すると、配列内のすべての要素に対してリダクション計算を実行でき、また、配列内のキー名を置換するためにも使用できます。
サンプル コード:
$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20]; $new_arr = array_reduce(array_keys($arr), function($result, $key) use ($arr) { if($key == 'user_id') { $key = 'id'; } $result[$key] = $arr[$key]; return $result; }, []); $arr = $new_arr;
上記のコードでは、配列のキー名を array_reduce 関数に渡し、キー名を置き換える無名関数を定義します。この関数では、まずキー名が「user_id」であるかどうかを判断し、そうである場合は「id」に置き換えます。それ以外の場合は、元のキー名を使用します。次に、新しいキーと値のペアを戻り値の配列に追加し、最後に返された配列を使用して元の配列を置き換えます。
概要
PHP では、array_map、foreach、array_reduce などの関数を使用するなど、同じ配列内のキー名を置換するさまざまな方法があります。さまざまな機能がさまざまな方法で使用されるため、特定のニーズやシナリオに応じて選択する必要があります。実際の開発では、配列の演算効率やコードの可読性を向上させるために、これらのメソッドを柔軟に使用する必要があります。
以上がPHP同じ配列でキー値を置き換えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。