learnMedlem sedan jan. 20051 130 inlägg Jag har kört fast.
Två arrayer:
User
(
[0] => Array
(
[userid] => 1
[username] => test1
[password] => hejhej
)
[1] => Array
(
[userid] => 2
[username] => test2
[password] => lalala
)
)
Log
(
[0] => Array
(
[logid] => 1
[userid] => 2
[date] => 2008-08-17
)
[1] => Array
(
[logid] => 2
[userid] => 1
[date] => 2008-08-18
)
)
Nu vill jag slå ihop dem till en ända array, typ så här:
User
(
[0] => Array
(
[userid] => 1
[username] => test1
[password] => hejhej
[log] => 2008-08-18
)
[1] => Array
(
[ID] => 2
[username] => test2
[password] => lalala
[log] => 2008-08-17
)
)
Hur gör jag det på smartaste sett? Alla tips och förslag är välkomna!
Tack på förhand!
learnMedlem sedan jan. 20051 130 inlägg Ingen som har något tips på hur man kan göra? :q
sabbacusMedlem sedan juli 2002630 inlägg array_merge() kanske är något?
http://se.php.net/array_merge
learnMedlem sedan jan. 20051 130 inlägg Nja, kanske... men det svåra är ju att få in värdena på rätt ställe, Log userid ska ju kopplas ihop med rätt User userid, om ni förstår hur jag menar
jmeMedlem sedan maj 20012 237 inlägg Loopa, lägg till manuellt...
learnMedlem sedan jan. 20051 130 inlägg Hmm, ok. Kan någon ge mitt ett förslag på hur detta kan göras?
ngisedMedlem sedan juni 200813 inlägg Gjorde ett försök och tycker det verkar funka bra...
$user = array(
0 => array(
"userid" => 1,
"username" => "test1",
"password" => "hejhej"
),
1 => array(
"userid" => 2,
"username" => "test1",
"password" => "hejhej"
)
);
$log = array(
0 => array(
"logid" => 1,
"userid" => 2,
"date" => "2008-02-02"
),
1 => array(
"logid" => 2,
"userid" => 1,
"date" => "2008-01-01"
)
);
function array_push_assoc($array, $key, $value){
$array[$key] = $value;
return $array;
}
foreach($log as $logkey => $logentry) {
foreach($user as $userkey => $userentry) {
if($logentry["userid"] == $userentry["userid"]) {
$user[$userkey] = array_push_assoc($userentry, "log", $logentry["date"]);
}
}
}
echo "<pre>";
print_r($user);
echo "</pre>";
überfuzzMedlem sedan apr. 2006409 inlägg Varifrån kommer dina arrayer? Kan du inte vara lite smartare när du skapar dem? Koden ger inga felmeddelanden eller varningar ifall arrayerna inte är lika långa eller om de inte finns matchningar på varenda nyckel.
ngised: Ibland är det bra med räknare. Här kan man låta dem slå två flugor i samma smäll.
for ($i = 0; $i < count($User); $i++)
{
for($j = 0; $j < count($Log); $j++)
{
if($User[$i]['userid'] == $Log[$j]['userid'])
{
$User[$i]['log'] = $Log[$j]['date'];
}
}
}
echo "<pre>";
print_r($User);
echo "</pre>";