ホームページ > バックエンド開発 > PHPの問題 > PHPのキーレス配列変換

PHPのキーレス配列変換

PHPz
リリース: 2023-05-07 15:10:10
オリジナル
451 人が閲覧しました

PHP では、通常、多数の関連データを保存または操作するために配列を使用します。場合によっては、キーのない配列 (つまり、指定された添え字のない配列) をキー付き配列に変換する必要があります。この記事では、キーなし配列をキー付き配列に変換する方法を紹介します。

1. キーなし配列をキー付き配列に変換する必要がある理由

PHP では、配列は数値添字または文字列添字を使用して要素にアクセスできます。数値添字を使用すると、PHP は配列内に出現する順序で要素にデフォルトの添字を割り当てます。ただし、配列に対して並べ替え、検索、またはその他の操作を行う必要がある場合は、カスタム添字を使用する必要があります。このとき、配列に添え字が指定されていない場合は、キー付き配列に変換する必要があります。

2. array_combine() 関数を使用して、キーのない配列をキー付きの配列に変換します。

PHP には、2 つの配列を 1 つの配列に結合する array_combine() 関数が用意されています。 array_combine() 関数の最初のパラメータはキー名として使用される配列で、2 番目のパラメータはキー値として使用される配列です。 2 つの配列の要素の数が等しくない場合、array_combine() 関数は false を返します。

キーのない配列をキー付きの配列に変換する場合は、まず新しいキー配列を作成し、次に array_combine() 関数を呼び出してそれを元の配列と結合します。

次は、キーなし配列をキー付き配列に変換するサンプル コードです:

$arr = [10, 20, 30, 40, 50]; // 无键数组
$keys = range(1, count($arr)); // 创建新的键名数组

$new_arr = array_combine($keys, $arr); // 将新的键名数组和原数组组合

print_r($new_arr); // 输出有键数组
ログイン後にコピー

出力結果:

Array
(
    [1] => 10
    [2] => 20
    [3] => 30
    [4] => 40
    [5] => 50
)
ログイン後にコピー

3. 配列要素に応じてキー名を割り当てます。 type

場合によっては、型に基づいて配列要素にキー名を割り当てることもできます。たとえば、配列内の要素が文字列の場合は、その文字列をキー名として使用でき、要素が整数または浮動小数点数の場合は、要素の値をキー名として使用できます。

以下は、キーなし配列をキー付き配列に変換するサンプル コードです:

$arr = ['apple', 'banana', 'orange']; // 无键数组
$new_arr = [];

foreach ($arr as $key => $value) {
    if (is_string($value)) { // 如果元素是字符串
        $new_arr[$value] = $value; // 使用字符串作为键名
    } else { // 如果元素是数字
        $new_arr[$value] = $value; // 使用元素值作为键名
    }
}

print_r($new_arr); // 输出有键数组
ログイン後にコピー

出力結果:

Array
(
    [apple] => apple
    [banana] => banana
    [orange] => orange
)
ログイン後にコピー

4. 結論

概要上記のキーなし配列をキー付き配列に変換する方法。 array_combine() 関数を使用し、要素タイプに基づいてキーを割り当てると、キーのない配列を簡単に処理し、キー付き配列に変換できます。実際のアプリケーションでは、特定の状況に応じて配列を処理する適切な方法を選択できます。

以上がPHPのキーレス配列変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート