Ich muss zwei Arrays in nur ein Array konvertieren, das ich später zum Einfügen in eine Datenbank verwenden kann.
Die Arrays sehen so aus:
array (size=4)
0 => string "Player1" (length=7)
1 => string "Player2" (length=7)
2 => string "Player3" (length=7)
3 => string "Player4" (length=7)
array (size=4)
0 => string "43" (length=2)
1 => string "12" (length=2)
2 => string "65" (length=2)
3 => string "12" (length=2)
Und ich würde gerne so etwas bekommen:
array (size=4)
name => string "Player1" (length=7)
value => string "43" (length=2)
name => string "Player2" (length=7)
value => string "12" (length=2)
name => string "Player3" (length=7)
value => string "65" (length=2)
name => string "Player4" (length=7)
value => string "12" (length=2)
Ein kleiner Code:
$players = "Player1,Player2,Player3,Player4";
$values = "43,12,65,12";
$players = explode(",",$players);
$values = explode(",",$values);
Ich habe es versucht array_combine
, aber das scheint Duplikate zu entfernen. Es wurde der Wert 12 entfernt.
Antworten:
3 für die Antwort № 1Durchlaufen Sie die Arrays und schieben Sie die kombinierten Elemente auf das neue Array.
$new_array = array();
foreach ($players as $i => $player) {
$new_array[] = array("name" => $player, "value" => $values[$i]);
}
Du könntest auch benutzen array_map
:
$new_array = array_map(function($p, $v) {
return array("name" => $p, "value" => $v);
}, $players, $values);
0 für die Antwort № 2
<?php
$players = "Player1,Player2,Player3,Player4";
$values = "43,12,65,12";
$players = explode(",",$players);
$values = explode(",",$values);
$newArr=array();
foreach ($players as $i => $val) {
$newArr[] = array($val, $values[$i]);
}
print_r($newArr);
Ich glaube nicht, dass dies die eleganteste Entscheidung ist ... Und ich bin sicher, dass diese Art von Antworten bereits in Stackoverflow vorhanden ist ...