2013-09-05 2 views
0

Я выполняю задание о том, как взять строку текста, разделенную запятыми, и отменить отдельные слова и вернуть слова в том же порядке.Преобразование массива в строку

Этот код делает это, но по какой-то причине он не возвращает его как строку, и я не понимаю.

<?php 
function bassAckwards($input) 
{ 
    // YOUR CODE HERE 

    $commas = substr_count($input, ","); 
    $NumWords = ($commas + 1); 
    $words = array($input); 
    for($x=0;$x<$NumWords;$x++) 
    { 
     $answer = array(strrev($words[$x])); 
     $answer = implode(",",$answer); 
     print $answer; 
    } 
} 
?> 
+2

Я вижу, что вы знаете о 'implode' - знаете ли вы и о« взрыве »? –

+0

$ words = explode (",", $ input); – bksi

ответ

0
$reversedWords = array(); 

// Explode by commas 
$words = explode(',', $input); 
foreach ($word in $words) { 
    // For each word 
    // Stack it, reversed, in the new array $reversedWords 
    $reversedWords[] = strrev($word); 
} 

// Implode by commas 
$output = implode(',', $reversedWords); 

print $output; 
4
function bassAckwards($str){ 
    $words = explode(',', $str); 
    $reversedWords = array_map('strrev', $words); 
    return implode(',', $reversedWords); 
} 

var_dump(bassAckwards('foo,bar,baz')); // string(11) "oof,rab,zab" 

Сохранить себя некоторые головные боли и использовать функции встроенного его.

  • explode
    делают 'Foo, бар, Базь => Array ('Foo', 'бар',' Базь)
  • array_map & strrev
    Выполнить strrev (строка назад) на каждом элементе массива с array_map и вернуть массив [modified].
  • implode
    преобразовать массив обратно в csv.
Смежные вопросы