J'ai un tableau qui contient un ensemble d'informations provenant d'une base de données, mais une partie est un doublon avec seulement 1 valeur dans la partie la plus profonde du tableau modifié . Par exemple:PHP trouver des valeurs à partir d'un tableau multidimensionnel puis les placer dans un tableau
[0] => Array(['id'] => 1 , ['name'] => "First Array" , ['more'] => "stuff")
[1] => Array(['id'] => 2 , ['name'] => "Second Array" , ['more'] => "stuff1")
[2] => Array(['id'] => 2 , ['name'] => "Second Array" , ['more'] => "stuff2")
[3] => Array(['id'] => 3 , ['name'] => "Third Array" , ['more'] => "stuff3")
[4] => Array(['id'] => 3 , ['name'] => "Third Array" , ['more'] => "stuff4")
Ce que je suis en train de faire est d'obtenir des tableaux avec le même champ [ « id »] dans un tableau avec un tableau au lieu de [ « plus »]. Par exemple:
[0] => Array(['id'] => 1 , ['name'] => "First Array" , ['more'] => "stuff")
[1] => Array(['id'] => 2 , ['name'] => "Second Array" , ['more'] => Array([0] => "stuff1" , [1] => "stuff2"))
[2] => Array(['id'] => 2 , ['name'] => "Third Array" , ['more'] => Array([0] => "stuff3" , [1] => "stuff4"))
J'ai essayé de le faire de plusieurs façons, mais le plus proche que je peux obtenir est une fonction qui va mettre toutes les valeurs [ « plus »] dans 1 tableau comme ceci:
[0] => Array(['id'] => 1 , ['name'] => "First Array" , ['more'] => "stuff")
[1] => Array(['id'] => 2 , ['name'] => "Second Array" , ['more'] => Array([0] => "stuff1" , [1] => "stuff2" , [2] => "stuff3" , [3] => "stuff4"))
et c'est de cette fonction:
<?php
private function compress_duplicates($a = array()) {
$diff_key = array_diff_key($a , array_unique($a));
$first_key = array_shift(array_keys($diffkey));
$array["id"] = $diff_key[$first_key]["id"];
$array["name"] = $diff_key[$first_key]["name"];
foreach($diff_key as $term) {
$array["more"][] = $term["more"];
}
return $array;
}
?>
Fondamentalement, ce que je demande: Comment puis-je trouver des doublons dans un tableau multidimensionnel, puis placer chacun de ces doublons dans leur propre tableau?