ホームページ > バックエンド開発 > PHPの問題 > PHP キー名を保持した2次元配列から1次元配列へ

PHP キー名を保持した2次元配列から1次元配列へ

WBOY
リリース: 2023-05-23 09:59:07
オリジナル
582 人が閲覧しました

PHP では、配列は非常に一般的に使用されるデータ型です。多くの PHP 開発者は、データの保存、処理、走査に配列を使用すると思います。実際の開発では、多次元配列を 1 次元配列に変換する必要があり、キー名を保持する必要がある場合があります。実際の開発ではこのような操作はよくあります。この記事では、PHP を使用して 2 次元配列を 1 次元配列に変換し、キー名を保持する方法を紹介します。

1. PHP 配列とは何ですか?

2 次元配列を 1 次元配列に変換する方法を紹介する前に、PHP における配列とは何かを理解する必要があります。 PHP では、配列を使用して一連の値を保存できます。これらの値は、整数、浮動小数点、文字列、オブジェクトなど、任意の型にすることができます。配列内の各値は、文字列や整数などのキーに関連付けられます。他の言語と比較して、PHP の配列は非常に柔軟で、さまざまなニーズを満たすことができます。

PHP で配列を定義するには 2 つの方法があります。 1 つの方法は、[]" を使用して定義することです。たとえば:

$arr1 = [1, 2, 3];
$arr2 = ['name' => 'xiaoming', 'age' => 18];
ログイン後にコピー

もう 1 つの方法は、array() を使用して定義することです。たとえば:

$arr3 = array(4, 5, 6);
$arr4 = array('name' => 'xiaohuang', 'age' => 20);
ログイン後にコピー

配列の構造は次のようになります。 var_dump 関数を通じて表示される例:

var_dump($arr1);
var_dump($arr2);
var_dump($arr3);
var_dump($arr4);
ログイン後にコピー

取得された出力結果は次のとおりです:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

array(2) {
  ["name"]=>
  string(8) "xiaoming"
  ["age"]=>
  int(18)
}

array(3) {
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
}

array(2) {
  ["name"]=>
  string(8) "xiaohuang"
  ["age"]=>
  int(20)
}
ログイン後にコピー

出力結果からわかるように、$arr1 と $arr3 は数値でインデックス付けされた配列であり、 $arr2 と $arr4 は連想配列です。次に、連想配列内の 2 次元配列を 1 次元配列に変換し、キー名を保持する方法を紹介します。

2. 二次元配列を変換する次元配列から 1 次元配列への変換

次の 2 次元配列を想定します:

$students = array(
    array('name' => 'xiaoming', 'age' => 18, 'sex' => 'male'),
    array('name' => 'xiaohong', 'age' => 19, 'sex' => 'female'),
    array('name' => 'xiaozhang', 'age' => 20, 'sex' => 'male')
);
ログイン後にコピー

この 2 次元配列には 3 つの要素が含まれており、各要素は生徒の情報です。名前 (name)、年齢 (age)、性別 (性別) が含まれます。次に、この 2 次元配列を 1 次元配列に変換する必要があります。

foreach ステートメントを使用して配列トラバーサルを実装できます。例:

$newArr = array();
foreach($students as $student) {
    foreach($student as $key => $value) {
        $newArr[$key][] = $value;
    }
}
ログイン後にコピー

上記のコードでは、最初の foreach ループは、$students 配列の各要素、つまり各生徒の情報を走査します。2 番目の foreach ループは、各生徒の情報内のキーと値のペアを走査します。つまり、生徒の名前、年齢、性別です。各走査で、走査されたキーと値のペアを新しい 1 次元配列に追加します。最終的に取得される $newArr 配列の構造は次のとおりです:

array(3) {
  ["name"]=>
  array(3) {
    [0]=>
    string(8) "xiaoming"
    [1]=>
    string(8) "xiaohong"
    [2]=>
    string(9) "xiaozhang"
  }
  ["age"]=>
  array(3) {
    [0]=>
    int(18)
    [1]=>
    int(19)
    [2]=>
    int(20)
  }
  ["sex"]=>
  array(3) {
    [0]=>
    string(4) "male"
    [1]=>
    string(6) "female"
    [2]=>
    string(4) "male"
  }
}
ログイン後にコピー

ご覧のとおり、$newArr 配列内の各キーと値のペアは保持されます 元の 2 次元配列内のキー名は削除されます このように、後続の処理で特定のキーに基づいて操作する必要がある場合

3. キー名の意味を保持する

なぜキー名を保持する必要があるのですか? キー名は特定の値を識別するために使用されます。キー名を保持する利点は、必要な値を見つけるためにループすることなく、キー名を使用して特定の値に直接アクセスできることです。さらに、キー名を保持すると、データ処理をより柔軟に行うことができます。

たとえば、上記の $newArr 配列を検索する必要がある場合、18 歳の学生の性別の場合、コードは次のように記述できます。 ##

echo $newArr['sex'][array_search(18, $newArr['age'])];
ログイン後にコピー
上記のコードからわかるように、キー名は保持されるため、 $newArr['age'] を直接使用して学生の年齢情報を検索し、array_search 関数を使用してインデックス値を見つけることができます。 18 歳の生徒で、$newArr['sex'] を使用して生徒の性別情報を検索します。このクエリ方法は、ループを使用して検索するより効率的です。

4. まとめ

この記事では、PHP を使用して 2 次元配列を 1 次元配列に変換し、キー名を保持する方法を簡単に紹介します。実際の開発では、キー名を保持することでデータ処理が便利になり、クエリ速度も向上します。も改善され、より効率的になりました。データを処理するときは、コードの可読性、保守性、拡張性が向上するように、配列内のキー名を使用して操作を実行することに注意する必要があります。

以上がPHP キー名を保持した2次元配列から1次元配列への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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