2015-08-03 4 views
0

Мне нужно преобразовать два массива в один массив, который я могу позже использовать для вставки в базу данных.PHP конвертировать два массива вместе

массивам выглядит следующим образом:

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.

+0

Вы попробовали 'array_merge()' вместо этого? – Sayed

ответ

3

Прокрутите массивы и нажмите объединенные элементы на новый массив.

$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

Работы, спасибо! –

+0

array_map(), идентичный моим именам и пробелам arg! О, подождите, я использовал $ result вместо $ new_array. – AbraCadaver

0
<?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 ....