简体   繁体   中英

Display foreach array side-by-side with CSS

I am pretty sure that if I use something like this in css

#list {
float:left;
}

I can format the display of my array to look like

A B C 

rather than

A
B
C

The problem is I am having problems formatting the php of the with the proper <div> 's to give me what I want.

foreach ( $model->address as $address ) {
    if ($address->Address) echo $address->Address.'<br />';
    if ($address->city->Name) echo $address->city->Name;
}

Can someone help me modify the foreach above to achieve the different layout. I also need to be able to format the Address differently then the Name

EDIT : For clarification...

A =

Address
City

B =

Address
City

C =

Address
City

You need to wrap each address in a div and use a class to float it:

PHP/HTML:

foreach ( $model->address as $address ) {
    echo '<div class="address-item">';
    if ($address->Address) echo $address->Address.'<br />';
    if ($address->city->Name) echo $address->city->Name;
    echo '</div>';
}

CSS:

.address-item {
     float: left;
}
$out = "<ul>";
foreach($model->address as $address){
    if(!isset($address->Address) && !isset($address->city->Name)) continue;
    $out .= "<li>" . isset($address->Address) ? $address->Address : "" . " "
        . isset($address->city->Name) ? $address->city->Name : "" . "</li>";
}
$out .= "</ul>";
print $out;

CSS

li {
    float: left;
}

something like:

foreach ( $model->address as $address ) {
   echo '<div class="list">';
   if ($address->Address) echo $address->Address.'<br />';
   if ($address->city->Name) echo $address->city->Name;
   echo '</div>';
}

wherein, the CSS will be:

.list {float:left;}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM