echo y return en foreach

  • Autor Autor engonga
  • Fecha de inicio Fecha de inicio
engonga

engonga

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
hola si tengo un foreach y dentro del bucle pongo un echo me pinta todos los valores del bucle pero si le pongo un echo y lo llamo despues sólo me ponga el primer item

ejemplo
Devuelve todos los valores
Insertar CODE, HTML o PHP:
function hola(){
foreach (array(1, 2, 3, 4) as &$valor) {
    
    echo  $valor;
}
}

echo "----";
echo hola();

Sólo devuelve 1

Insertar CODE, HTML o PHP:
function hola(){
foreach (array(1, 2, 3, 4) as &$valor) {
    
    return  $valor;
}
}

echo "----";
echo hola();

ya no se que puedo intentar porque quiero mostrar los valores del bucle en un sitio especifico del sitio web y no onde lo pinte
 
hola si tengo un foreach y dentro del bucle pongo un echo me pinta todos los valores del bucle pero si le pongo un echo y lo llamo despues sólo me ponga el primer item

ejemplo
Devuelve todos los valores
Insertar CODE, HTML o PHP:
function hola(){
foreach (array(1, 2, 3, 4) as &$valor) {
  
    echo  $valor;
}
}

echo "----";
echo hola();

Sólo devuelve 1

Insertar CODE, HTML o PHP:
function hola(){
foreach (array(1, 2, 3, 4) as &$valor) {
  
    return  $valor;
}
}

echo "----";
echo hola();

ya no se que puedo intentar porque quiero mostrar los valores del bucle en un sitio especifico del sitio web y no onde lo pinte
Asi lo puedes pintar donde quieras.

PHP:
<?php foreach(array(1, 2, 3, 4) as &$valor): ?>
    <p><?php echo $valor; ?></p>
<?php endforeach; ?>

o de esta forma, lo guardas todo en una variable.

PHP:
function hola(){
    
    $valores = '';
    
    foreach(array(1, 2, 3, 4) as &$valor){
        $valores .= $valor;
    }
    
    return $valores;
    
}

echo "----";
echo hola();
 
el problema es que estoy intentando colocarlo en un wordpress y si lo pinto así no puedo usar el add_filter()
El código es este

Insertar CODE, HTML o PHP:
<?php
function adinterlinking($idliteral){
     // sistema de arrays de ids
    $IDssemanticos = array(
           39 => array(
                123,54,106,48
           ),
           11 => array(
                119,9,14,134,6,1,15,5,16,7,112,116,17,11,12,18,126,10,13,0,8
        ),
           138 => array(
                154,141
           ),
           77 => array(
                83,97
           ),
           100 => array(
                94,90
           ),
           14 => array(
                13
           ),
           5 => array(
                2,3,4
           ),
        154 => array(
                3,5,6
        )
    );


// Printing all the keys and values one by one

$keys = array_keys($IDssemanticos);
for($i = 0; $i < count($IDssemanticos); $i++) {
    
    if($idliteral==$keys[$i]){
        foreach($IDssemanticos[$keys[$i]] as $key => $value) {
           //return $key . " : " . $value . "<br>";
           echo $value ;
        }
    }
  
}

}
// final sistema array ids




function interlinkig_semantico($content){
    $content = $content . '<br><br>Hola caracola feroz ' .  adinterlinking(get_the_ID());
    return $content;
    
}



//add_action('the_content', 'interlinkig_semantico');
add_filter('the_content', 'interlinkig_semantico', 9);
?>

el echo $value me pinta los valores antes del $content pero si le pongo un return $value me lo pinga despues del $content pero sólo un valor.
 
así si que funciona, mucchas gracias
 
Atrás
Arriba