Трябва да конвертирам два масива само в един масив, който по-късно мога да използвам за вмъкване в база данни.
Масивите изглеждат по следния начин:
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)
И бих искал да получа нещо подобно:
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)
Малък код:
$players = "Player1,Player2,Player3,Player4";
$values = "43,12,65,12";
$players = explode(",",$players);
$values = explode(",",$values);
Аз се опитах с array_combine
, но изглежда, че премахва дубликатите. Той премахна стойността 12.
Отговори:
3 за отговор № 1Прекарайте масите и натиснете комбинираните елементи върху новия масив.
$new_array = array();
foreach ($players as $i => $player) {
$new_array[] = array("name" => $player, "value" => $values[$i]);
}
Можете също да използвате array_map
:
$new_array = array_map(function($p, $v) {
return array("name" => $p, "value" => $v);
}, $players, $values);
0 за отговор № 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);
Не мисля, че това е най-елегантното решение, но ... и съм сигурен, че този вид отговори вече присъстват в Stackoverflow ....