2015-07-23 3 views
0

Я пытаюсь отформатировать массив строковых данных, используя sprintf, но по какой-то причине я не могу заставить его печатать новую строку. Я хочу, чтобы новая строка была запущена после возвращения строки_1. Вот код, который у меня есть. Любая помощь будет оценена по достоинству. Я очень новичок в использовании sprintf, поэтому я могу сделать это неправильно.sprintf новая строка не работает

function format_address($address_array) { 
return sprintf("%s \n %s %s %s \t %s", 
    $address_array['line_1'], 
    $address_array['city'], 
    $address_array['state'], 
    $address_array['zip'], 
    $address_array['line_5'] 
    ); 
} 
+0

Это работает, если вы удалите \ n и \ t из функции? Где вы используете эту функцию? Наконец, все поля, заданные в массиве? Вы получаете какие-либо ошибки? –

+0

@ LiamSorsby Хорошо, что сама функция работает независимо от того, что такое форматирование, которое не вступает в силу. Так что да, технически это работает без них, но оно не форматируется правильно. – K8K

+0

Что отображается вместо этого? Это отображается в HTML? или просто в обычном тексте? –

ответ

1

Просто оформить ответ, так что этот вопрос может быть помечен как «решена» по предложению Лиама:

function format_address($address_array) { 
    return sprintf("%s <br/> %s %s %s \t %s", 
     $address_array['line_1'], 
     $address_array['city'], 
     $address_array['state'], 
     $address_array['zip'], 
     $address_array['line_5'] 
    ); 
} 
1

Почему бы не просто конкатенатно?

return $address_array['line_1']."\n".$address_array['city']."\n".$address_array['state']."\n".$address_array['zip']."\n".$address_array['line_5']; 

Кроме того, стоит отметить, в PHP, чтобы использовать разрывы строк правильно, вы должны быть уверены, чтобы использовать "\n" и не '\n'

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