ホームページ > バックエンド開発 > PHPの問題 > PHP配列の行から列へ

PHP配列の行から列へ

WBOY
リリース: 2023-05-19 15:28:39
オリジナル
639 人が閲覧しました

PHP では、配列は非常に一般的に使用されるデータ構造です。ただし、場合によっては、配列を操作して行を列に、または列を行に変換する必要があります。この記事では、PHP 配列の行を列に変換する方法を紹介します。

行から列へは、配列内の各行を列に変換して新しい配列を生成することを指します。たとえば、次のデータを含む $array という名前の配列があります:

$array = array(
    array('name'=>'张三', 'age'=>18, 'sex'=>'男'),
    array('name'=>'李四', 'age'=>20, 'sex'=>'男'),
    array('name'=>'王五', 'age'=>22, 'sex'=>'女')
);
ログイン後にコピー

これを次の形式の配列に変換したいとします:

$new_array = array(
    'name' => array('张三', '李四', '王五'),
    'age' => array(18, 20, 22),
    'sex' => array('男', '男', '女')
);
ログイン後にコピー

実装するコードは次のとおりです。行変換:

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

コードの説明:

  1. まず、行が列に変換された後の結果を格納するための新しい配列 $new_array を作成します。
  2. 次に、2 つの foreach ループを使用して、元の配列 $array を走査します。
  3. 外側の層は各行を走査し、内側の層は各列を走査して、各列の値を新しい配列 $new_array に挿入します。

多次元配列を変換する必要がある場合は、再帰的メソッドを使用してそれを実現できます。以下は、多次元配列の行から列への変換を実装するコードです:

function array_row2column($array){
    if(!is_array($array)){
        return false;
    }
    $new_array = array();
    foreach($array as $key=>$value){
        foreach($value as $k=>$v){
            $new_array[$k][$key] = (is_array($v)) ? array_row2column($v) : $v;
        }
    }
    return $new_array;
}
ログイン後にコピー

コードの説明:

  1. 最初に、関数 array_row2column() を定義します。多次元配列を行と列に変換するために使用され、配列は行から列への演算を実行します。
  2. 次に、関数内で元の配列 $array が配列であるかどうかを判断し、そうでない場合は false を返します。
  3. それ以外の場合は、行が列に変換された後の結果を格納するための新しい配列 $new_array を作成します。
  4. 2 つの foreach ループを使用して、元の配列 $array を走査します。
  5. 外側の層は各行を走査し、内側の層は各列を走査して、各列の値を新しい配列 $new_array に挿入します。
  6. 列の値がまだ配列である場合は、再帰的メソッドを使用して配列の処理を続行します。
  7. 最後に、新しい配列 $new_array を返します。

この時点で、行から列への操作は完了しました。この記事が皆様のお役に立てれば幸いです。

以上がPHP配列の行から列への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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