2013-05-29 4 views
0

У меня есть два массива:PHP: Concatinating два массива значений

array(1,2,3,4,5) 
array(10,9,8,7,6) 

Окончательный массив Нужно:

array(0=>1:10,1=>2:9,2=>3:8,3=>4:7,4=>5:6) 

Я могу написать пользовательскую функцию, которая будет достаточно quieck !! Но я хотел использовать существующий, так что есть ли какая-либо функция, которая делает это в php? Передайте два входных массива и получите окончательный результат массива? Я прочитал через array functions, но не смог найти какой-либо или комбинацию из функции, которая даст мне результат

+0

Результат должен быть '1: 10' или' 1,10'? –

+0

См. Мой отредактированный окончательный массив. Спасибо за все наши ценные ответы :) – VishwaKumar

ответ

4

Нет встроенную функцию, но на самом деле нет ничего плохого в loop .. Просто держать его просто

$c = array(); 
for($i = 0; $i < count($a); $i ++) { 
    $c[] = sprintf("%d:%d", $a[$i], $b[$i]); 
} 

или использовать array_map

$c = array_map(function ($a,$b) { 
    return sprintf("%d:%d", $a,$b); 
}, $a, $b); 

Live Demo

+1

Это Javascript, а не PHP .. –

+0

@DillenMeijboom .. lol – Baba

+1

@Baba: один с array_map классный. +1 для него. –

0

См: http://php.net/functions

И особенно: http://nl3.php.net/manual/en/function.array-combine.php

Кроме того, я не совсем понимаю, конечный результат массива? ли вы имеете в виду это:

array (1 = 10, 2 = 9, 3 = 8, 4 = 7, 5 = 6) 

Потому что в этом случае вам придется написать пользовательскую функцию, которая перебирает обоих массивов и объединить элемент [х] из массива 1 с пунктом [х] из массива 2.

0
<?php 
    $arr1=array(1,2,3,4,5); 
    $arr2=array(10,9,8,7,6); 
    for($i=0;$i<count($arr1);$i++){ 
    $newarr[]=$arr1[$i].":".$arr2[$i]; 
} 
print_r($newarr); 
?> 
1

Попробуйте это:

$arr1 = array(1,2,3,4,5); 
$arr2 = array(10,9,8,7,6); 

$res = array_map(null,$arr1,$arr2); 
$result = array_map('implode', array_fill(0, count($res), ':'), $res); 

echo "<pre>"; 
print_r($result); 

выход:

Array 
(
    [0] => 1:10 
    [1] => 2:9 
    [2] => 3:8 
    [3] => 4:7 
    [4] => 5:6 
) 
+1

+1 Но вам не нужно 'array_fill' ... implode будет просто отлично – Baba

Смежные вопросы