2013-08-07 3 views
0

У меня есть массив как это:Преобразование nummeric массив разделенных запятыми строку

[participants] => Array 
    (
     [0] => 9 
     [1] => 8 
     [2] => 12 
    ) 

Я хочу, чтобы поместить его в другой переменной, чтобы выглядеть следующим образом:

«9,8,12»

Я попытался с кодом ниже, но она не выводит ничего:

$mem = ""; 
for($i = 0; $i < count($participants); $i++) 
{ 
    $mem.$participants[$i]; 
} 

echo $mem; 

Что может быть проблема?

+0

Вы не прикладывая запятые между вашими числами, вы должны изменить эту строку: '$ MEM $ участников [$ я];', но почему потрудились когда вы можете использовать 'implode()'. – Revent

+0

, если вы хотите объединить их и поместить их в '$ mem', вам нужно сначала сделать знак' = '. Итак, '$ mem. = $ Участники [$ i];'. Чтобы поставить comas между вами, вы можете сделать '$ mem. = ($ I> 0)? ','. $ members [$ i]: $ members [$ i]; 'но вы можете использовать функцию' implode() ', чтобы сделать это для вас, как указывали остальные. – jbx

ответ

2

Проще всего было бы использовать implode:

implode(',', $participants); 

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

$mem .= $participants[$i].','; 

Однако я предпочел бы Еогеасп так:

$mem = ""; 
foreach ($participants as $key => $value){ 
    $mem .= $value.','; 
} 

Если вы зацикливаете таким образом, вам нужно избавиться от последней запятой когда вы сделали: implode функцию

$mem = rtrim($mem, ','); 
+0

Спасибо: P, который сделал трюк, но можете ли вы также сказать мне, что не так с моим собственным кодом? –

1

Используйте РНР:

$s = implode(",", $participants); 

Причина, что ваш код не работает, потому что вы никогда ничего не делать, чтобы $mem. Для добавления строки в строку, используйте оператор: .=

$mem .= $participants[$i]; 

Вы увидите, что это будет просто склеить все вместе, без запятых.

1

, чтобы исправить ваш код. вы не назначая результат ни к чему

$mem = $mem. "," .$participants[$i]; 

или

$mem .= "," . $participants[$i]; 

но взрывать является лучшим решением

также ваш метод перекручивание может потребовать от вас, чтобы удалить запятая в начале (или в конце)

1

Ваш код должен быть:

$mem = ""; 
for($i = 0; $i < count($participants); $i++) 
{ 
    $mem .= ($i > 0) ? ",".$participants[$i] : $participants[$i]; 
} 

echo $mem; 
.

но, как другие говорили, использовать PHP implode()

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