0

私はそれを理解できず、どこにも見つけられないので、質問があります(おそらく、私が知らない間違った検索語..)。私は次のものを持っています:

配列
(
    [0] => 配列
        (
            [事実番号] => 50
            [Omschrijving] => モノ 1
        )

    [1] => 配列
        (
            [事実番号] => 50
            [Omschrijving] => 事 2
        )

    [2] => 配列
        (
            [事実番号] => 51
            [Omschrijving] => 事 2
        )

    [3] => 配列
        (
            [事実番号] => 51
            [Omschrijving] => 事 3
        )

    [4] => 配列
        (
            [事実番号] => 51
            [Omschrijving] => モノ 4
        )

)

foreach を使用してすべてをテーブルに出力すると、5 行が得られますが、同じ「Factuurnummer」に基づいて 2 行しか必要ありません。つまり、'Factuurnummer'=50 および 'Omschrijving'=Thing 1、Thing 2 の 1 つの行と、'Factuurnummer'=51 および 'Omschrijving'=Thing 2、Thing 3、Thing 4 の別の行です。

array_intersect について何か読んだことがありますが、この場合に役立つかどうかはわかりません。最も良いのは、同じ「Factuurnummer」に基づく「Omschrijving」の値がコンマで区切られている場合です (私の小さな例のように)。

私が十分に明確であり、誰かが正しい方向に私を助けてくれることを願っています!

4

2 に答える 2

0

上記の配列が $data と呼ばれると仮定して、印刷する前に配列を書き直す必要があります。

$facturen = array();
foreach($data as $row) {
    $factuurnummer = $row['Factuurnummer'];
    if (!isset($facturen[$factuurnummer])) {
        $facturen[$factuurnummer] = array();
    }
    $facturen[$factuurnummer][] = $row['Omschrijving'];
}

// On display:
foreach($facturen as $factuurnummer => $omschrijvingen) {
     echo $factuurnummer.': '.implode(', ', $omschrijvingen);
}
于 2013-11-29T20:07:52.370 に答える