Trabajar ciertos datos de una array

xmatias Siguiendo

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
8 Jun 2014
Mensajes
281
Bueno estoy trabajando con una api que me devuelve json, uso la función json_decode para convertir los datos a array. Y me devuelve algo como esto:

Insertar CODE, HTML o PHP:
Array ( [0] => stdClass Object ( [id] => 17705 [hi] => 0 [rating] => 0 [url] => /subtitle/the-philadelphia-experiment-yify-17705.zip ) [1] => stdClass Object ( [id] => 17706 [hi] => 0 [rating] => 0 [url] => /subtitle/the-philadelphia-experiment-yify-17706.zip ) [2] => stdClass Object ( [id] => 17704 [hi] => 0 [rating] => 2 [url] => /subtitle/the-philadelphia-experiment-yify-17704.zip ) )

Mi código para obtener eso es el siguiente:

PHP:
$datos= json_decode($subapi);
$subs = $datos->subs;

Lo que quiero yo es obtener un json con solo los campos url para poderlos insertar en una base de datos. ¿Cómo podría hacerlo?

Gracias y saludos :encouragement:
 

hugo1

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
28 Dic 2012
Mensajes
90
PHP:
$datos = json_decode($subapi, true);

foreach($datos as $dato)
{
	echo $dato['url'];
}
 

xmatias

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
8 Jun 2014
Mensajes
281
Si había echo eso de esta manera:

PHP:
foreach($datos as $dato)
{
$url = $dato['url'];
$guardar = json_encode($url)
}

Luego inserté la variable guardar en mi base de datos pero solo me tomaba el último valor :/
 

hugo1

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
28 Dic 2012
Mensajes
90
El valor de $guardar se esta reemplazando en cada loop del foreach.

Intenta hacer algo asi.

PHP:
$guardar = '';

foreach($datos as $dato)
{
	$guardar .= "('". $dato['url'] ."'),";
}

// "INSERT INTO tabla(dato) VALUES". substr($guardar, 0, -1);
 
Última edición:

xmatias

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
8 Jun 2014
Mensajes
281
El valor de $guardar se esta reemplazando en cada loop del foreach.

Intenta hacer algo asi.

PHP:
$guardar = '';

foreach($datos as $dato)
{
	$guardar .= "('". $dato['url'] ."'),";
}

// "INSERT INTO tabla(dato) VALUES". substr($guardar, 0, -1);

Perfecto, muchas gracias :encouragement:
 
Arriba