2016-09-22 2 views
-2

Я пытаюсь добавить (строку) значения массива в один массив, у меня есть три значения массива, как показано ниже:Как объединить значения массива в один массив?

Array ([0] => 15 [1] => 16) 
Array ([0] => jan [1] => feb) 
Array ([0] => 2012 [1] => 2012) 

и теперь я хочу, чтобы те массивы в одном массиве, как показано ниже:

Array ([0] => 15-jan-2012 [1] => 16-feb-2012) 

Итак, как я могу это сделать в php.

+0

вы пытались что-нибудь? – Dave

+0

Вам может понадобиться специальный код. –

ответ

2

Вам нужен этот пользовательский код: слишком простой, просто цикл для доступа к каждому массиву с индексом и хранением в массиве.

$d = array(15, 16); 
$m = array("jan", "feb"); 
$y = array (2012, 2012); 

$final = array(); 
for($i = 0; $i < count($d); $i++){ 
    $final[] = $d[$i]. "-" .$m[$i]. "-" .$y[$i]; 
} 
print_r($final); 

Выход:

Array ([0] => 15-jan-2012 [1] => 16-feb-2012) 

вы можете сделать это с помощью, array_merge_recursive, но имеет некоторые трудности.

ONLINE DEMO

+0

Noman спасибо .. вы спасете мою жизнь, отлично работая, чего я хочу. –

+0

@SantoshKhatri, Как вы думаете, этот ответ предоставлен #Noman ??? –

+0

Я не смог найти, кто дал ответ, я только что проверил, что Редактор отредактировал так, что я думал, что Номан дал ответ .. так может быть, я ошибаюсь, вы дали ответ, так что спасибо за помощь мне –

1

Быстрый и грязный путь, я предположу, что ваш каждый массив имеет одинаковую длину

$a = array ('15','16'); 
$b = array ('jan','feb'); 
$c = array ('2012','2012'); 

$newArray = array(); 

for($i=0;$i<=count($a);$i++){ 
    $newArray = $a[$i]. "-" .$b[$i]. "-" .$c[$i]; 
} 

echo '<pre>'; 
print_r($newArray); 
echo '</pre>'; 
+0

такой же ответ. какие новости ? – Noman

+0

Извините @Noman. Вы говорите правильно, но я не проверял –

+0

Его спокойствие, я думаю –

1

Вам нужен специальный код, как это, например:

$arr = []; 
$arr1 = [15, 16, 17, ...]; 
$arr2 = [jan, feb, ...]; 
$arr3 = [2012, 2012, ...]; 

for($i=0, $count = count($arr1); i<$count; i++) 
{ 
    $arr[] = "$arr1[$i]-arr2[$i]-arr3[$i]"; 
} 
var_dump($arr); 
0

использование array_column, чтобы получить требуемый массив дат, и, наконец, скомпоновать его, используя implode. Что-то вроде

$arr1 = array(15, 16); 
$arr2 = array('jan', 'feb'); 
$arr3 = array(2012, 2012); 

$date = array($arr1, $arr2, $arr3); 
$dates = array(array_column($date, 0), array_column($date, 1)); 

$reqDate = array(); 
foreach ($dates as $dateVal) { 
    $reqDate[] = implode('-', $dateVal); 
} 

var_dump($reqDate); //your required output 
0

Вы можете написать все это одним махом, как так:

$a = [15, 16]; 
$b = ['jan', 'feb']; 
$c = [2012, 2012]; 
$dates = array_map(function($arr) { 
    return implode('-', $arr); 
}, array_map(null, $a, $b, $c))); 
Смежные вопросы