2012-09-16 24 views
5

Soy relativamente nuevo en php y lo he intentado todo el día para hacer que esto funcione. Tengo una matriz múltiple y quiero hacer eco de cada una en un formato específico y en grupos. Así que he pasado por stackoverflow y encontraron esta ayuda:foreach con array_chunk en php y con matrices múltiples

<? foreach(array_chunk($projetos, 6) as $curta) { ?> 


     <li style='display:block'> 


        <div class="film"> <?php echo $curta[0]['titulo']; ?></div> 
        <div class="film"> <?php echo $curta[1]['titulo']; ?></div> 
        <div class="film"> <?php echo $curta[2]['titulo']; ?></div> 
        <div class="film"> <?php echo $curta[3]['titulo']; ?></div> 
        <div class="film"> <?php echo $curta[4]['titulo']; ?></div> 
        <div class="film"> <?php echo $curta[5]['titulo']; ?></div> 


      </li> 

     <? }; ?> 

Y esto devuelve lo que quiero, pero los últimos elementos de la matriz duerma llenar hasta 6 y crea 2 extras div vacíos y estropea el diseño.

Este es un solo ejemplo de la matriz tengo:

<?php 
$projetos = array ( 

      "ugm" => array (
        "id" => "ugm", 
        "titulo" => "Una Guerra Más", 
        "video" => "imagem", 
        "videoid" => "", 
        "height" => "$video_height_wide", 
        "sinopse" => "Um soldado moribundo deseja enviar sua última carta. Curta indisponível por exibição em festivais. Feito em parceria com a Universidad del Cine e LightBox Studios.", 
        "elenco" => "Ignacio J. Durruty - Rodrigo Soler - Ulisses Levanavicius - Aron Matschulat Aguiar", 
        "idioma" => "Inglês - Português", 
        "camera" => "Sony EX1", 
        "formato" => "HD", 
        "duracao" => "9'55''", 
        "ano" => "2012", 
        "tipo" => "Curta", 
        "credito" => "Direção - Edição - Produção - Roteiro", 
           ), (...) 

Quiero ser capaz de editar sólo un div que será el maestro para los demás ... y usando la implosión tengo leí en otra pregunta pero no funcionó para hacer eco de las cadenas que quería ...

Me gustaría ayudar a alguien a salir? gracias de antemano!

+0

disculpa amigos, pero no puedo entender tu problema ... es mi error ... si elaboras entonces te ayudaré lo más posible. – Rajnish

Respuesta

10
<?php foreach(array_chunk($projetos, 6) as $curta) { ?> 
    <li style='display:block'> 
     <?php foreach($curta as $detail) { ?> 
       <div class="film"> <?php echo $detail['titulo']; ?></div> 
     <?php } ?> 
    </li> 
<? }; ?> 
+0

gracias eugen! esto funcionó a la perfección! ;) Knittl hizo lo mismo e im utilizando este código ahora que ustedes han proporcionado :) ¡muchas gracias! – Aron

0

Estas líneas:

<div class="film"> <?php echo $curta[0]['titulo']; ?></div> 

debería ser así:

<div class="film"> <?php echo $curta[0]['ugm']['titulo']; ?></div> 

que debe hacer lo que quiera.

0

¿Por qué no utilizar un ciclo para iterar sobre $curta?

<? foreach(array_chunk($projetos, 6) as $curta) { ?> 
    <li style='display:block'> 
    <? foreach($curta as $c) { ?> 
     <div class="film"><? echo $c['titulo']; ?></div> 
    <? } ?> 
    </li> 
<? }; ?> 
+0

gracias knittl! esto funcionó perfectamente;) – Aron

0

pero los últimos elementos de la matriz duerma llenan hasta 6

Como esto va a pasar la mayor parte del tiempo, no se puede asumir que cada trozo tiene 6 elementos, por lo que tendrá que iterar sobre el fragmento:

<? foreach(array_chunk($projetos, 6) as $curta) { ?> 

<li style='display:block'> 

<? foreach($curta as $c) { ?>  
    <div class="film"> <?php echo $c['ugm']['titulo']; ?></div> 
<? }; ?> 

</li> 

<? }; ?> 

De esta manera, asegúrese de no mostrar divisiones vacías.