2016-11-28 5 views
1

Мой массив:Implode массив строк два на два - PHP

Array 
(
    [0] => 1 
    [1] => 4 
    [2] => 2 
    [3] => 5 
    [4] => 3 
    [5] => 6 
    [6] => 4 
    [7] => 7 
) 

Я использую этот код: взрывать ("", $ выход);

но он возвращает это: 1,4,2,5,3,6,4,7,6

Я хочу 0 поставляется с 1 и 2 поставляется с 3 и т.д. с «TS» между их. после обоих из них с «ts», он должен появиться с запятой. как это: 1ts4,2ts5,3ts6,4ts7

Резюме: вместо нечетных запятых (с Implode, что я сказал), я хочу его ставить «ц» (1ts4,2ts5,3ts6,4ts7)

+0

U есть использование Еогеасп цикл также выше требования –

+0

@RahulPawar Спасибо, но как только изменить шансы? : D – Mewtei

ответ

2

Попробуйте ниже код: -

$arr = [1,4,2,5,3,6,4,7]; 
$strArr= []; 
for($i=0;$i<count($arr);$i=$i+2){ 
    $strArr[] = "{$arr[$i]}ts{$arr[$i+1]}"; 
} 
echo implode(',',$strArr); 

Отредактировано

+0

Спасибо, это также работает. – Mewtei

+0

Добро пожаловать :-) –

2

Вы можете использовать функцию array_chunk, чтобы сначала разбивать массив на части, а затем вставлять их по своему желанию.

+1

как взорвать это? потому что он становится двумя частями, и я хочу взорвать ли с запятой и «ts» – Mewtei

+0

Использовать цикл foreach для выделенного массива для развязывания частей с помощью «ts». Второй шаг будет представлять собой массив результатов с запятой. –

2

Вы можете сделать это, как показано ниже: -

<?php 
error_reporting(E_ALL); 
ini_set('display_errors',1); 

$arr = Array 
(
    0 => 1, 
    1 => 4, 
    2 => 2, 
    3 => 5, 
    4 => 3, 
    5 => 6, 
    6 => 4, 
    7 => 7 
); 

$new_array = array_chunk($arr,2); // break the array into sub-arrays of two-two values each 

$my_string = ''; // an empty string 
foreach ($new_array as $new_arra){ // iterate though the new chunked array 

    $my_string .= implode('ts',$new_arra).','; // implode the sub-array and add to the variable 
} 

echo trim($my_string,','); // echo variable 

Выход: - 1ts4,2ts5,3ts6,4ts7

https://eval.in/686524

0

Вот еще один способ:

<?php 
$a = Array(0 => 1,1 => 4,2 => 2,3 => 5,4 => 3,5 => 6,6 => 4,7 => 7);// your array 
$i=1; 
foreach ($a as $key => $value) { 
    if ($i % 2 != 0) { 
     $newArr[] = $value."ts".$a[$i]; 
    } 
    $i++; 
} 
print_r($newArr); 
?> 

Выход:

Array ( [0] => 1ts4 [1] => 2ts5 [2] => 3ts6 [3] => 4ts7)

1

Я знаю, что я мог бы быть поздно отвечать, но это может быть полезным без использования array_chunk функции и с помощью одного for цикла вроде как

$arr = Array 
(
    0 => 1, 
    1 => 4, 
    2 => 2, 
    3 => 5, 
    4 => 3, 
    5 => 6, 
    6 => 4, 
    7 => 7 
); 

$res = []; 
$count = count($arr); 
for($k = 0; $k < $count; $k+=2) 
{ 
    $res[] = isset($arr[$k+1]) ? "{$arr[$k]}ts{$arr[$k+1]}" : $arr[$k]; 
} 

echo implode(",",$res); 

Выход:

1ts4,2ts5,3ts6,4ts7 
0

Другой способ:

$array = [ 
    0 => 1, 
    1 => 4, 
    2 => 2, 
    3 => 5, 
    4 => 3, 
    5 => 6, 
    6 => 4, 
    7 => 7, 
]; 

$array = array_map(function($item) { return implode('ts', $item); }, array_chunk($array, 2)); 
echo implode(',', $array);