PHPでは、文字列を配列に処理し、キー価値ペアの配列に変換する必要があることがよくあります。 array_fill_keys関数は、配列の要素に基づいてキー価値ペアの配列を生成し、各キーの指定された値を入力するのに役立つ非常に実用的な関数です。この記事では、例を使用して、文字列を配列に分割する方法を説明し、 array_fill_keysを使用して分割配列をキー値ペア配列に変換します。
まず、文字列を配列に分割する必要があります。 PHPはexploit()関数を提供し、指定されたデリミターに基づいて文字列を配列に分割できます。
たとえば、コンマを分離した単語を含む文字列があるとします。
$string = "apple,banana,orange,grape";
exploit()関数を使用して、それを配列に分割します。
$array = explode(",", $string);
print_r($array);
出力の結果は次のとおりです。
Array
(
[0] => apple
[1] => banana
[2] => orange
[3] => grape
)
次に、 array_fill_keys関数を使用して、分割配列をキー価値ペアの配列に変換します。 array_fill_keysには2つのパラメーターが必要です。1つ目はキー名アレイ、2つ目は満たされた値です。
分割配列をキー名配列として使用して、各キーの同じ値を指定します。たとえば、すべてのキーの値をTRUEに設定できます。
$keys = explode(",", $string);
$values = true; // すべてのキー価値ペアが設定されています true
$assocArray = array_fill_keys($keys, $values);
print_r($assocArray);
出力の結果は次のとおりです。
Array
(
[apple] => 1
[banana] => 1
[orange] => 1
[grape] => 1
)
文字列の処理中にURLにも関与している場合は、これらのメソッドを使用してURL文字列を分割し、 array_fill_keysを使用してキー価値ペアを埋めることができます。
次のURLがあるとします。
$url = "https://m66.net/product?id=123&category=books&price=99";
URLのパラメーターパーツを分割して、キー値ペア配列に変換できます。
// スプリットURLクエリ文字列パーツ
$queryString = parse_url($url, PHP_URL_QUERY);
parse_str($queryString, $params);
// 使用 array_fill_keys キー価値のペアの配列を作成します
$keys = array_keys($params);
$values = 'some_value'; // すべてのキーの値を設定します 'some_value'
$assocArray = array_fill_keys($keys, $values);
print_r($assocArray);
出力の結果は次のとおりです。
Array
(
[id] => some_value
[category] => some_value
[price] => some_value
)
この例では、URLを解析し、クエリパラメーターのキー名を抽出することにより、それらをキー価値ペア配列に変換します。