Php 一个变量中不同数组中的相同值

Php 一个变量中不同数组中的相同值,php,arrays,array-intersect,Php,Arrays,Array Intersect,我有一个问题,因为我想不出来,也找不到它(可能是我不知道的错误搜索词…)。我有以下资料: Array ( [0] => Array ( [Factuurnummer] => 50 [Omschrijving] => Thing 1 ) [1] => Array ( [Factuurnummer] => 50 [Omschrijving]

我有一个问题,因为我想不出来,也找不到它(可能是我不知道的错误搜索词…)。我有以下资料:

Array ( [0] => Array ( [Factuurnummer] => 50 [Omschrijving] => Thing 1 ) [1] => Array ( [Factuurnummer] => 50 [Omschrijving] => Thing 2 ) [2] => Array ( [Factuurnummer] => 51 [Omschrijving] => Thing 2 ) [3] => Array ( [Factuurnummer] => 51 [Omschrijving] => Thing 3 ) [4] => Array ( [Factuurnummer] => 51 [Omschrijving] => Thing 4 ) ) 排列 ( [0]=>阵列 ( [事实总结]=>50 [Omschrijving]=>事情1 ) [1] =>阵列 ( [事实总结]=>50 [Omschrijving]=>事情2 ) [2] =>阵列 ( [事实总结]=>51 [Omschrijving]=>事情2 ) [3] =>阵列 ( [事实总结]=>51 [Omschrijving]=>第三件事 ) [4] =>阵列 ( [事实总结]=>51 [Omschrijving]=>事情4 ) ) 现在,当我使用foreach在一个表中打印所有内容时,我得到5行,但基于相同的“factuurnumer”,我只需要2行。因此,一行'factuurnumer'=50和'Omschrijving'=thing1,thing2,另一行'factuurnumer'=51和'Omschrijving'=thing2,thing3,thing4

我读过一些关于array_intersect的文章,但我不知道这是否对本例有帮助。最好是使用逗号分隔基于相同“Factuurnummer”的“Omschrijving”中的值(如我的小示例)


希望我足够清楚,有人能在正确的方向上帮助我

您应该在打印数组之前重写数组,假设上面的数组名为$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);
}

您可以轻松使用
array\u 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);

非常感谢,这正是我的意思。但下一个问题是,最初我的数组是在“Facuurnummer”和“Omschrijving”旁边扩展的,带有一列“Naam”和“Datum”(与相同的Factuurnummer相等)。所以在屏幕上它必须是:Factuurnummer | Naam | Datum | Omschrijving。用你的代码我无法得到相应的Naam和数据。我该怎么做?希望您理解我:)假设相同编号的发票具有相同的名称和日期(只是描述不同):将
$facturen[$factuurnummer]=array()
更改为
$facturen[$factuurnummer]=>array('Naam'=>$row['Naam'],'Datum'=>$row['Datum'],'Omschrijvingen'=>array())
,以及
$facturen[$factuurnummer]['Omschrijvingen'][=$row['Omschrijving']
非常感谢!它现在像火车一样工作:D.太好了!