2013-06-07 2 views
1

У меня есть этот foreach, который выводит ссылку на сообщение, его имя и значок, если это сообщение прочитано/непрочитано.PHP: инвертировать порядок объектов в строке

foreach (BLAHBLAH) { 
    $is_read = !in_array($obj->id, $unread_msgs); 
    $title = $obj->title; 
    $url = $obj->url; 

    $output = '<li><a href="'.$url.'">'. $title; 
    if ($is_read) { 
     $output .= ' <img src="icon-read.png" />'; 
    } else { $output .= ' <img src="icon-unread.png" />'; } 
    $output .= '</a></li>'; 
    echo $output; 
} 

Таким образом, выходной формат <li><a href="POST_URL">POST_TITLE</a><img src="READ/UNREAD_ICON"/></li>. Я бы хотел вместо этого <li><img src="READ/UNREAD_ICON"/><a href="POST_URL">POST_TITLE</a></li>. Итак, сделайте изображение перед ссылкой. Я пытаюсь играть с строковыми операторами, но я не очень знаком с ними .. :(

Я также пытался сделать что-то вроде

$output = '<li><img src="'.$iconstatus.'"/><a href="'.url.'">'. title; 
if ($is_read) { 
    $iconstatus = 'icon-read.png'; 
} else { $iconstatus = 'icon-unread.png'; } 
$output .= '</a></li>'; 
echo $output; 

Но, кажется, не делать ничего хорошего .

+0

вашей второй попытки бессмысленна вы хотите добавить '$ iconstantus' в' $ output' перед назначением его. – Robert

+0

Как его добавить? –

+0

проверить мой ответ – Robert

ответ

0
foreach (BLAHBLAH) { 
    $is_read = !in_array($obj->id, $unread_msgs); 
    $title = $obj->title; 
    $url = $obj->url; 
    $output = "<li><a href=\"$url\"> 
        <span>$title</span> 
        <img src=\"icon-".($is_read ? '' : 'un')."read.png\" alt=\"img\" /> 
        </a> 
       </li>"; 
    echo $output; 
} 

Вы можете просто проверить, если он прочитал добавить правильный код для $output

0

вы пытаетесь использовать переменную, прежде чем установить его Попробуйте это:.

if ($is_read) { 
    $iconstatus = 'icon-read.png'; 
} else { $iconstatus = 'icon-unread.png'; } 
$output = '<li><img src="'.$iconstatus.'"/><a href="'.$url.'">'. $title; 
$output .= '</a></li>'; 
echo $output; 

конечно, вы можете упростить первые три строки и использовать только это:

$iconstatus = $is_read ? 'icon-read.png' : 'icon-unread.png'; 
$output = '<li><img src="'.$iconstatus.'"/><a href="'.$url.'">'. $title; 
$output .= '</a></li>'; 
echo $output; 

Я предлагаю вам ознакомиться с PHP string reference для получения более подробной информации о том, как обрабатывать строки в PHP.

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