Explodes anidados

  • Autor Autor NicDam
  • Fecha de inicio Fecha de inicio
N

NicDam

Gamma
Hola betas!

Escribo para consultarles una cosa sobre php

La cosa es que tengo un custom field de wordpress que tiene el siguiente formato: "tecla1 accion1, tecla2 accion2, tecla3 accion3"

Lo que quiero es lograr transformar ese campo en lo siguiente:
<div>Tecla 1</div> Accion 1
<div>Tecla 2</div> Accion 2
<div>Tecla 3</div> Accion 3

Y si tengo "tecla1 tecla2 accion1, tecla3 tecla4 accion2,tecla5 accion 3" como tendria que ser para que quede
<div>Tecla 1</div><div>Tecla 2</div> Accion 1
<div>Tecla 3</div><div>Tecla 4</div> Accion 2
<div>Tecla 5</div> Accion 3

Saludos y gracias de antemano!
 
Con un primer explode utilizas la coma como delimitador, y con un segundo espacios.

PHP:
<?php
# Separa las secciones que estan delimitadas por comas.
$cf = explode(','$cf);

# Separa los elementos segun el orden en el que estan.
foreach ($cf as $elemento) {
  $salida[] = explode(' ',$elemento);
}

# Resultado~:
$salida = array(
  1 => array('tecla1', 'accion1'),
  2 => array('tecla2', 'accion2');
);


Creo que es algo asi.
Solo que no debe haber espacios alrededor de las comas.

El chiste es usar diferentes delimitadores para poder darle dimensiones.
 
Última edición:
Lo que quiero lograr es esto

55kxsy.jpg


Almacenar las variables en un campo de wordpress de la siguiente forma: "mouse girar, primer boton disparar, e correr" etc etc y despues realizar un par de explodes para mostrar los datos de esa forma.

Estoy intentando con
PHP:
<?php echo get_post_meta($post->ID, "teclas", true); 
echo '<br><br>'; 
$algo = explode(',',get_post_meta($post->ID, "teclas", true));
foreach ($algo as $a) { 
$algo2 = explode('&nbsp;',$a);
foreach ($algo2 as $a2) {
echo $a2[0].'<br>'; } } ?>

Pero me devuelve el primer caracter del explode no mas...
 
Última edición:
Lo que quiero lograr es esto

55kxsy.jpg


Almacenar las variables en un campo de wordpress de la siguiente forma: "mouse girar, primer boton disparar, e correr" etc etc y despues realizar un par de explodes para mostrar los datos de esa forma.

Estoy intentando con
PHP:
<?php echo get_post_meta($post->ID, "teclas", true); 
echo '<br><br>'; 
$algo = explode(',',get_post_meta($post->ID, "teclas", true));
foreach ($algo as $a) { 
$algo2 = explode('&nbsp;',$a);
foreach ($algo2 as $a2) {
echo $a2[0].'<br>'; } } ?>

Pero me devuelve el primer caracter del explode no mas...

Mi ejemplo funciona como lo describes, $cf es el post meta, y al final $salida es un array con cada accion.

Para obtener los datos y manejarlos, revisa la estructura con var_dump y te das una idea.
 
Gracias [MENTION=557]shadowhck[/MENTION], se me paso responderte!

Lo que no entiendo es como darle formato al var_dump (no soy muy bueno en php 😛) o mejor dicho, como hacer echo del array.
 
Última edición:
Gracias Enlace eliminado, se me paso responderte!

Lo que no entiendo es como darle formato al var_dump (no soy muy bueno en php 😛) o mejor dicho, como hacer echo del array.

Es solo para depuracion, si descubres como estan los datos en el Array, se te dificultara menos darle formato.

PHP:
var_dump($variable);

Los foreach podrian ser utiles.

Ejemplo:
PHP:
<php
foreach( $salida as $s ) {
  echo 'Lo que quieras' . $s[0] . 'Lo que quieras' . $s[1] . 'Lo que quieras';
}

Usa tu imaginacion.
 
Atrás
Arriba