2014-11-12 21 views
5

Chcę scalić 2 element w tablicy w PHP, w jaki sposób mogę to zrobić. Proszę, proszę, powiedz mi.Jak połączyć 2 elementy tablicy w PHP?

$arr = array('Hello','World!','Beautiful','Day!'); // these is my input 

//i want output like 

array('Hello World!','Beautiful Day!'); 

Odpowiedz

12

Rozwiązanie generic byłoby coś takiego:

$result = array_map(function($pair) { 
    return join(' ', $pair); 
}, array_chunk($arr, 2)); 

Łączy ze sobą słowa w parach, więc 1. i 2., 3. i 4., itp

+0

array_chunk ($ arr, 2) co to jest? i $ arr lub jest zamieniany na $ a – higunjan

+0

@GunjanPatel [dzieli tablicę na kawałki] (http://php.net/manual/en/function.array-chunk.php) – George

+0

Użyj instrukcji PHP i Google: http://php.net/manual/en/function.array-chunk.php – mcserep

0

Prostym rozwiązaniem byłoby:

$new_arr=array($arr[0]." ".$arr[1], $arr[2]." ".$arr[3]); 
+2

Nie prawdziwa odpowiedź, ponieważ tylko rozwiązuje konkretny przypadek przykład test. – mcserep

2

specyficzne dla tej sprawy, że to będzie bardzo proste:

$result = array($arr[0].' '.$arr[1], $arr[2].' '.$arr[3]); 

Bardziej ogólne podejście byłoby

$result = array(); 
for ($i = 0; $i < count($arr); $i += 2) { 
    if (isset($arr[$i+1])) { 
     $result[] = $arr[$i] . ' ' . $arr[$i+1]; 
    } 
    else { 
     $result[] = $arr[$i]; 
    } 
} 
+0

Nie jest to prawdziwa odpowiedź, ponieważ rozwiązuje tylko konkretny przykładowy przypadek testowy. – mcserep

+0

Edytowane już jako ogólne podejście. – Paul

+0

Nadal nie sądzę, że to dobre rozwiązanie, ponieważ może łatwo indeksować z tablicy, gdy ma nieparzystą liczbę elementów. – mcserep

1

Jeśli Twoja tablica nie jest ustalona na 4 Elementy

$arr = array(); 
$i = 0; 
foreach($array as $v){ 
    if (($i++) % 2==0) 
    $arr[]=$v.' '; 
    else { 
    $arr[count($arr)-1].=$v; 
    } 
} 

żywo: http://ideone.com/VUixMS

1

Zakładając, że nie znasz całkowitej liczby elementów, ale wiesz, że zawsze będą one miały liczbę parzystą (w przeciwnym razie nie możesz dołączyć do ostatniego elementu), możesz po prostu powtórzyć numer $arr w krokach 2:

$count = count($arr); 
$out=[]; 
for($i=0; $i<$count; $i+=2;){ 
    $out[] = $arr[$i] . ' ' .$arr[$i+1]; 
} 
var_dump($out); 
1

Oto ona:

$arr = array('Hello', 'World!', 'Beautiful', 'Day!'); 
$result = array(); 
foreach ($arr as $key => $value) { 
    if (($key % 2 == 0) && (isset($arr[$key + 1]))) { 
    $result[] = $value . " " . $arr[$key + 1]; 
    } 
} 
print_r($result); 
+0

@Kzqai: Dziękujemy za ustalenie nawiasów zamykających. :) –

Powiązane problemy