Преобразовать значения массива в строку, разделенную запятыми, с заменой чисел на '?' - PullRequest
1 голос
/ 11 мая 2011

Мой массив:

$numbers = array(1, 3, 5);

Проще, мне нужно изменить цифры с ? знаком вопроса и разделить с , запятой.

// Output (array has 3 items): 
$string = '?, ?, ?';

Ответы [ 5 ]

4 голосов
/ 11 мая 2011

Однострочник для удовольствия:

echo implode(", ", array_map(function($v){ return "?"; }, $numbers));
2 голосов
/ 11 мая 2011

Вы можете использовать комбинацию str_repeat и count .Затем используйте rtrim для очистки запятой:

$numbers = array(1, 3, 5);
$str = str_repeat('?, ', count($numbers));
$str = rtrim($str, ', ');
echo $str;

// output: ?, ?, ? 
1 голос
/ 11 мая 2011

Может быть?

$arr= array(1,2,3);
echo wordwrap(sprintf("%'?".count($arr)."s",'' ), 1, ", ", true);

Редактировать для:

$arr= array(1,2,3);
$max = count($arr);
for($i=0;$i<$max;$i++){
   echo '?',(($i==($max-1))?'':', ');
}
1 голос
/ 11 мая 2011
$numbers = array(1,2,3);
$questions = array();
for($i=0;$i<sizeof($numbers);$i++)
    $questions[] = '?';
$string = implode(', ',$questions);

РЕДАКТИРОВАТЬ: улучшено с помощью array_fill

$numbers = array(1,3,5);
$string = implode(', ', array_fill(0, count($numbers), '?'));
echo $string;
0 голосов
/ 11 мая 2011

использовать функцию implode.

$numbers = array(1, 3, 5);
$string = implode(", ", $numbers);
echo $string;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...