如何在一行中添加数组中的重复项


How to add duplicates in array in one row

我有这个数组:

Array(
    [0] => Array(
        [0] => 1
        [1] => Name1
        [2] => Ingridient1
    )
    [1] => Array(
        [0] => 2
        [1] => Name2
        [2] => Ingridient1
    )
    [2] => Array(
        [0] => 2
        [1] => Name2
        [2] => Ingridient2
    )
)

如何在一个键中添加像 Name2 这样的重复项以获得 Ingridient1 和 Ingridient2...IngridientN?

<?php
$my_arr = array(array(1, 'Name1', 'Ingredient1'), array(2, 'Name2', 'Ingredient1'), array(2, 'Name2', 'Ingredient2') );

$my_final_array = array();
foreach($my_arr as $val){
    if (!isset($my_final_array[$val[1]])){
        $my_final_array[$val[1]] = array();
    }
    if (!in_array($val[2], $my_final_array[$val[1]])){
        $my_final_array[$val[1]][] = $val[2];
    }    
}
echo '<pre>';
print_r($my_final_array);
echo '</pre>';
?>

输出:

Array
(
    [Name1] => Array
        (
            [0] => Ingredient1
        )
    [Name2] => Array
        (
            [0] => Ingredient1
            [1] => Ingredient2
        )
)

如何回声:

echo '<pre>';
foreach($my_final_array as $name => $ingredients){
    echo $name . ' - Ingredients: ' . implode(', ', $ingredients).PHP_EOL;
}
echo '</pre>';

回声输出:

Name1 - Ingredients: Ingredient1
Name2 - Ingredients: Ingredient1, Ingredient2

对@mani答案的一个小改动

$array = array(array(1, 'Name1', 'Ingredient1'), array(2, 'Name2', 'Ingredient1'), array(2, 'Name2', 'Ingredient2') );

$final_array = array();
foreach($array as $val){
     $final_array[$val[1]][] = $val[2]; 
}