j'ai un tableau qui ressemble à cefonction récursive php
$dataArray = array (
0 =>
array (
'UserId' => '804023',
'ProjectCode' => 'RA1234',
'Role' => 'PI',
),
1 =>
array (
'UserId' => '804023',
'ProjectCode' => 'RA1234',
'Role' => 'PM',
),
2 =>
array (
'UserId' => '804023',
'ProjectCode' => 'A90123',
'Role' => 'CI',
),
3 =>
array (
'UserId' => '804023',
'ProjectCode' => 'A20022',
'Role' => 'PM',
),
)
j'ai besoin de ressembler à ce
$expected = array (
804023 =>
array (
'RA1234' =>
array (
0 => 'PI',
1 => 'PM',
),
'A90123' =>
array (
0 => 'PI',
),
'A20022' =>
array (
0 => 'CI',
),
),
)
Je pense que cela pourrait être réalisé génériquement en utilisant récursion comme cela est un scénario I Je suis susceptible de rencontrer de nombreuses fois
Je l'ai obtenu ce loin en passant dans un tableau de clés qui forment les clés de tableau imbriquées, par exemple
$keys=array("UserId","projectCode","Role");
mais je ne vois tout simplement pas où aller à partir de là des pointeurs?
public function structureData(array $data, array $keys)
{
//$structuredData = array();
foreach ($data as $key => $value)
{
$keyForData = array_slice($keys,0,1);
$remainingKeys = $keys;
array_shift($remainingKeys);
if (!array_key_exists($value[$keyForData[0]], $structuredData))
{
$count=count($remainingKeys);
$structuredData[$value[$keyForData[0]]] =array();
// this returns as expected array(804023 =>array()); but subsequent recursive calls with the remaining data fail
}
}
return $structuredData);
}
cela ne semble pas avoir à voir avec la récursivité. essayer une approche différente? – muhmuhten