0

我有一个问题,因为我想不通,也无法在任何地方找到它(也许是我不知道的错误搜索词..)。我有以下内容:

大批
(
    [0] => 数组
        (
            [Factuurnummer] => 50
            [Omschrijving] => 事物 1
        )

    [1] => 数组
        (
            [Factuurnummer] => 50
            [Omschrijving] => 事情 2
        )

    [2] => 数组
        (
            [Factuurnummer] => 51
            [Omschrijving] => 事情 2
        )

    [3] => 数组
        (
            [Factuurnummer] => 51
            [Omschrijving] => 事情 3
        )

    [4] => 数组
        (
            [Factuurnummer] => 51
            [Omschrijving] => 事情 4
        )

)

现在,当我使用 foreach 将其全部打印在表中时,我得到 5 行,但我只想要 2 行,基于相同的“Factuurnummer”。所以 1 行 'Factuurnummer'=50 和 'Omschrijving'=Thing 1, Thing 2 和另一行 '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 回答
0

您可以轻松地array_walk()将数据写入具有更可用格式的数组:

$new_array = array();
array_walk($existing_array, function($item, $key_not_used) use ($new_array) {
    $new_array[$item['Factuurnummer']][] = $item['Omschrijving'];
});
var_dump($new_array);
于 2013-11-29T20:17:32.990 回答