ホームページ  >  記事  >  バックエンド開発  >  バックエンドPHPで2次元配列のフィールドを取得する方法

バックエンドPHPで2次元配列のフィールドを取得する方法

PHPz
PHPzオリジナル
2023-04-20 13:48:061255ブラウズ

PHP では、通常、2 次元配列は関連データのコレクションとして保存されます。このタイプのデータ構造では、各配列要素をループし、配列インデックス演算子を使用して各要素の値にアクセスできます。指定したフィールドのみにアクセスする必要がある場合は、array_column() 関数を使用するか、トラバーサル関数をカスタマイズできます。

1. array_column() 関数を使用する
array_column() 関数は、指定された配列内のフィールドの値を取得し、それを新しい配列として返すことができます。パラメータのリストは次のとおりです:

array_column(array $input,mixed $column_key,mixed $index_key = null) : array
パラメータの説明:

  • $input: required 、必須 フィールドの多次元配列を取得します。
  • $column_key: 必須、返されるキー値。このキーの値が返されることを示す文字列にすることも、このインデックスの値が返されることを示す数値にすることもできます。
  • $index_key: オプション。返される配列のキーとして使用される列。この列の値をキーとして使用する必要があることを示す文字列にすることもできますし、$column_key の値をキーとして使用する必要があることを示す数値にすることもできます。

次の例は、array_column() 関数を使用して 2 次元配列内の指定されたフィールドを取得する方法を示しています:

// 二维数组
$data = array(
    array('id'=>1, 'name'=>'Alice', 'age'=>20),
    array('id'=>2, 'name'=>'Bob', 'age'=>23),
    array('id'=>3, 'name'=>'Charlie', 'age'=>25),
);
    
// 获取名字字段值
$names = array_column($data, 'name');
print_r($names); // 输出 ['Alice', 'Bob', 'Charlie']

// 获取id和名字作为键的新数组
$new_data = array_column($data, 'age', 'name');
print_r($new_data); //输出 ['Alice'=>20, 'Bob'=>23, 'Charlie'=>25]

2. トラバーサル関数のカスタマイズ
If取得するフィールドは使用できません。固定位置の場合、または複雑な操作をカスタマイズする必要がある場合は、トラバーサル関数をカスタマイズして実装できます。以下はトラバーサル関数のサンプル コードです。

// 自定义一个遍历函数
function get_field_from_array($data,$field){
    $result = array();
    foreach($data as $item){
        if(array_key_exists($field,$item)){
            $result[] = $item[$field];
        }
    }
    return $result;
}

// 二维数组
$data = array(
    array('id'=>1, 'name'=>'Alice', 'age'=>20),
    array('id'=>2, 'name'=>'Bob', 'age'=>23),
    array('id'=>3, 'name'=>'Charlie', 'age'=>25),
);

// 获取名字字段值
$names = get_field_from_array($data,'name');
print_r($names); //输出 ['Alice', 'Bob', 'Charlie']

// 获取id字段值
$ids = get_field_from_array($data,'id');
print_r($ids); //输出 [1, 2, 3]

上記 2 つの方法により、2 次元配列内の指定されたフィールド値を簡単に取得できます。どの方法を使用する場合でも、不正な配列形式によって引き起こされるエラーや例外を避けるために、受信配列形式が関数の要件を満たしているかどうかに注意する必要があります。

以上がバックエンドPHPで2次元配列のフィールドを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。