L learn Medlem sedan jan. 2005 1 130 inlägg Frågan 19 aug. 2008 10:03 #1 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!
L learn Medlem sedan jan. 2005 1 130 inlägg Ingen som har något tips på hur man kan göra? :q
S sabbacus Medlem sedan juli 2002 630 inlägg array_merge() kanske är något?
http://se.php.net/array_merge
L learn Medlem sedan jan. 2005 1 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
J jme Medlem sedan maj 2001 2 237 inlägg Loopa, lägg till manuellt...
L learn Medlem sedan jan. 2005 1 130 inlägg Hmm, ok. Kan någon ge mitt ett förslag på hur detta kan göras?
N ngised Medlem sedan juni 2008 13 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>";
Ü überfuzz Medlem sedan apr. 2006 409 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>";