1

配列を解析し、特定の値をチェックし、それらの値が存在する場合はそれらの値で新しい配列を作成し、それらをすべて一緒に array_push する関数を開始するのに助けが必要です。

私はこのような配列を通過しています:

Array
(
    [0] => Array
        (
            [id] => 86
            [34] => 695
            [39] => 0
            [40.1] => Yes
            [36.1] => Yes 
            [35.4] => Card
            [33.3] => Dekalb
            [33.4] => Illinois
            [33.5] => 60115
            [33.6] => United States
            [35.1] => 1143
            [33.1] => 5555 Write Rd
            [33.2] => Write School
            [32.6] => John
            [32.3] => Smith
            [28] => jsmith@gmail.com
            [27] => 5555556554
            [25] => NIUSN
            [14.3] => Jane
            [14.6] => Doe
            [11.2] => 695
            [12] => 1
            [11.1] => In-Person
            [3] => 0
            [2.2] => 595
            [2.1] => Online
        )
    [1] => Array
        (
        ...same stuff as before
        )

parseArray上記の配列を渡す関数を作成しました。すべてのキーと値の組み合わせを確認し、特定のキーが存在する場合は、それを変数に設定します。次に、適切な変数がすべて存在する場合は、それを配列に関連付けてから、最終的な配列 (すべての値が保持される場所) にプッシュします。

function parseArray($arry) {

    $results = array();
    $current_result = array();

    foreach($arry as $a) {
        foreach($a as $k => $v) {       
            if ( $k == '14.3' ) {
                $attendee_first_name = $v;
            }
            if ( $k == '14.6' ) {
                $attendee_last_name = $v;
            }
            if ( $attendee_first_name && $attendee_last_name ) {
                $full_name = $attendee_first_name . ' ' . $attendee_last_name;
            }
        }
        $current_result['attendee_name'] = $full_name;
    }

    array_push($results, $current_result);

    return $results;
}

今私がやっている方法は、非常に手続き的で非常に扱いにくいものでした。配列をトラバースして値を割り当てるための、よりクリーンで美しいコードを生成する方法について、いくつかの洞察を得たいと思っています。

理想的には、次のような結果が欲しいです:

Array
(
    [0] => Array
        (
            [attendees_name] = John Smith
            [attendees_email] = jsmith@gmail.com
            [purchasing_name] = Jane Doe
            ...etc

したがって、出力を foreach に渡すだけで、目的の情報を簡単に出力できます。

4

1 に答える 1