我有这个数组:
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];
}