Ayuda Array PHP

deskpro123 Seguir

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
2.014
Hola a todos, espero la ayuda de algun conocedor de los arrays PHP ya que no he podido hacerlo yo mismo por mas que he tratado.

Es lo siguiente:

Tengo un codigo php que me muestra este array:

Insertar CODE, HTML o PHP:
[data] => Array
        (
            [0] => Array
                (
                    [AdSlot.name] => slot66234-Article Banner
                    [adImps] => 0
                    [adCost] => 0
                )

            [1] => Array
                (
                    [AdSlot.name] => slot66731-Large Banner
                    [adImps] => 2
                    [adCost] => 0
                )

            [2] => Array
                (
                    [AdSlot.name] => slot66732-Articles Banner
                    [adImps] => 5
                    [adCost] => 0
                )

            [3] => Array
                (
                    [AdSlot.name] => slot68463-Article Banner over desription
                    [adImps] => 2
                    [adCost] => 0
                )

            [4] => Array
                (
                    [AdSlot.name] => slot70033-upper
                    [adImps] => 5
                    [adCost] => 0
                )

            [5] => Array
                (
                    [AdSlot.name] => slot71550-bigger
                    [adImps] => 1035
                    [adCost] => 0
                )

            [6] => Array
                (
                    [AdSlot.name] => slot71579-SHP
                    [adImps] => 30
                    [adCost] => 0
                )

            [7] => Array
                (
                    [AdSlot.name] => slot71658-down
                    [adImps] => 16
                    [adCost] => 0
                )

            [8] => Array
                (
                    [AdSlot.name] => slot73144-bugatt
                    [adImps] => 2
                    [adCost] => 0
                )

            [9] => Array
                (
                    [AdSlot.name] => slot73206-slower
                    [adImps] => 6
                    [adCost] => 0
                )

            [10] => Array
                (
                    [AdSlot.name] => slot81097-upper
                    [adImps] => 43277
                    [adCost] => 38.9556
                )

            [11] => Array
                (
                    [AdSlot.name] => slot81098-downer
                    [adImps] => 88012
                    [adCost] => 33.5639
                )

            [12] => Array
                (
                    [AdSlot.name] => slot81589-ret
                    [adImps] => 52
                    [adCost] => 0
                )

            [13] => Array
                (
                    [AdSlot.name] => slot82259-upp
                    [adImps] => 210
                    [adCost] => 0.0268
                )

        )

)

Quisiera mostrar los resultados por AdSlotName un ejemplo, si solo quiero ver los resultados de: slot81098-downer, como seria?

Lo tenia asi:

$imps2=$response["data"][11]["adImps"] ;
$dinero2=$response["data"][11]["adCost"];

Pero no quiero que sea por el ID del array sino por el AdSlotName.

Un saludo y gracias de antemano,
 
U

Usuario eliminado 44716

Basta con que uses la función array_search de php, y te quedaría así:

$array_data = $response["data"];
$imps2 = $array_data[array_search('slot81098-downer',$array_data)]["adImps"] ;
$dinero2=$array_data[array_search('slot81098-downer',$array_data)]["adCost"];

Un saludo :encouragement:
 

token

Zeta
Verificación en dos pasos activada
Desde
8 Mar 2012
Mensajes
1.870
Basta con que uses la función array_search de php, y te quedaría así:

$array_data = $response["data"];
$imps2 = $array_data[array_search('slot81098-downer',$array_data)]["adImps"] ;
$dinero2=$array_data[array_search('slot81098-downer',$array_data)]["adCost"];

Un saludo :encouragement:

Doy fe...

Pd: (Debo ingresar mas de 10 caracteres...)
 
U

Usuario eliminado 44716

Pues ahora el que no la da soy yo, me equivoqué :drunk:, hay otro array más, sino quieres introducir la clave vas a tener que hacer un código más larguito:

PHP:
$array_data = $response["data"];
for($i=0;$i<count($array_data);$i++){
    if($array_data[$i][AdSlot.name] = 'slot81098-downer'){
        $clave = $i;
        break;
    }
}
$imps2 = $array_data[$clave]["adImps"];
$dinero2=$array_data[$clave]["adCost"];

Ahora sí que debe de funcionar, saludos :star2:
 

deskpro123

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
2.014
Basta con que uses la función array_search de php, y te quedaría así:

$array_data = $response["data"];
$imps2 = $array_data[array_search('slot81098-downer',$array_data)]["adImps"] ;
$dinero2=$array_data[array_search('slot81098-downer',$array_data)]["adCost"];

Un saludo :encouragement:



Pues ahora el que no la da soy yo, me equivoqué :drunk:, hay otro array más, sino quieres introducir la clave vas a tener que hacer un código más larguito:

PHP:
$array_data = $response["data"];
for($i=0;$i<count($array_data);$i++){
    if($array_data[$i][AdSlot.name] = 'slot81098-downer'){
        $clave = $i;
        break;
    }
}
$imps2 = $array_data[$clave]["adImps"];
$dinero2=$array_data[$clave]["adCost"];

Ahora sí que debe de funcionar, saludos :star2:

Gracias Companeros, probare ambos codigos para asi aprender mejor el funcionamiento de las Arrays, que cuando aprendia PHP, me salte esa parte en los videotutoriales :(.

Pasenme sus Skypes porfavor, busco programadores para algunos proyectos.
 

Artynok

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 Nov 2013
Mensajes
12
Buen dia:
Considerando que oldArray es tu array donde tienes tu data tal cual la pusiste en el post entonces asi podrias tenerla como la estas pidiendo


PHP:
$newArray = array();
foreach($oldArray["data"] as $k => $v){
	$newArray["data"][$oldArray["data"][$k]["AdSlot.name"]] = array("adImps" => $oldArray["data"][$k]["adImps"],
															"adCost" => $oldArray["data"][$k]["adCost"]
														);
}


Un saludo
 
Última edición:

deskpro123

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
2.014
Basta con que uses la función array_search de php, y te quedaría así:

$array_data = $response["data"];
$imps2 = $array_data[array_search('slot81098-downer',$array_data)]["adImps"] ;
$dinero2=$array_data[array_search('slot81098-downer',$array_data)]["adCost"];

Un saludo :encouragement:

Pues ahora el que no la da soy yo, me equivoqué :drunk:, hay otro array más, sino quieres introducir la clave vas a tener que hacer un código más larguito:

PHP:
$array_data = $response["data"];
for($i=0;$i<count($array_data);$i++){
    if($array_data[$i][AdSlot.name] = 'slot81098-downer'){
        $clave = $i;
        break;
    }
}
$imps2 = $array_data[$clave]["adImps"];
$dinero2=$array_data[$clave]["adCost"];

Ahora sí que debe de funcionar, saludos :star2:

Buen dia:
Considerando que oldArray es tu array donde tienes tu data tal cual la pusiste en el post entonces asi podrias tenerla como la estas pidiendo


PHP:
$newArray = array();
foreach($oldArray["data"] as $k => $v){
	$newArray["data"][$oldArray["data"][$k]["AdSlot.name"]] = array("adImps" => $oldArray["data"][$k]["adImps"],
															"adCost" => $oldArray["data"][$k]["adCost"]
														);
}


Un saludo


No me ha funcionado ninguno :(

Les pasare el codigo aver si me pueden ayudar:

Este codigo:

Insertar CODE, HTML o PHP:
$params = array(
'measurements' => array('adImps', 'adCost'),
'dimensions' => array('Country.name'),
'date_range' => 'today',
);

$ch = curl_init();
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERPWD, $user . ':' . $pass);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
if (!empty($params)) {
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, array('data' => json_encode($params)));
}
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

echo '<pre>';
print_r($response);
echo '</pre>';

Me genera estos resultados

Insertar CODE, HTML o PHP:
   [data] => Array
        (
            [0] => Array
                (
                    [AdSlot.name] => slot66234-Article Banner
                    [adImps] => 0
                    [adCost] => 0
                )

            [1] => Array
                (
                    [AdSlot.name] => slot66731-Large Banner
                    [adImps] => 2
                    [adCost] => 0
                )

            [2] => Array
                (
                    [AdSlot.name] => slot66732-Articles Banner
                    [adImps] => 3
                    [adCost] => 0
                )

            [3] => Array
                (
                    [AdSlot.name] => slot68463-Article Banner over desription
                    [adImps] => 1
                    [adCost] => 0
                )

            [4] => Array
                (
                    [AdSlot.name] => slot70033-upper
                    [adImps] => 4
                    [adCost] => 0
                )

            [5] => Array
                (
                    [AdSlot.name] => slot71550-bigger
                    [adImps] => 652
                    [adCost] => 0
                )

            [6] => Array
                (
                    [AdSlot.name] => slot71579-SHP
                    [adImps] => 20
                    [adCost] => 0
                )

            [7] => Array
                (
                    [AdSlot.name] => slot71658-down
                    [adImps] => 11
                    [adCost] => 0
                )

            [8] => Array
                (
                    [AdSlot.name] => slot81097-upper
                    [adImps] => 30071
                    [adCost] => 25.2193
                )

            [9] => Array
                (
                    [AdSlot.name] => slot81098-downer
                    [adImps] => 61227
                    [adCost] => 22.6779
                )

            [10] => Array
                (
                    [AdSlot.name] => slot81589-ret
                    [adImps] => 42
                    [adCost] => 0
                )

            [11] => Array
                (
                    [AdSlot.name] => slot82259-upp
                    [adImps] => 59
                    [adCost] => 0
                )

        )

)

Como obtengo resultados con el AdSlot.Name? Quiero obtener solo adImp y adCost de slot81098-downer?
 
U

Usuario eliminado 44716

[MENTION=25010]deskpro123[/MENTION] creo que no te ha funcionado porque se me olvidó ponerle las comillas al elemento del array ni dos iguales en una condición la verdad es que ese día estaría idioto perdido porque son errores muy tontos, mira la diferencia ahora quedaría así, sino te funciona dime que errores te da:

PHP:
$array_data = $response["data"]; 
for($i=0;$i<count($array_data);$i++){ 
    if($array_data[$i]['AdSlot.name'] == 'slot81098-downer'){ 
        $clave = $i; 
        break; 
    } 
} 
$imps2 = $array_data[$clave]["adImps"]; 
$dinero2=$array_data[$clave]["adCost"];
 

Artynok

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 Nov 2013
Mensajes
12
Te copio todo lo que he hecho en código. Supuestamente debes reemplazar oldArray por response
PHP:
$oldArray = array("data" => array(	array(
										"AdSlot.name"	=> "slot66234-Article banner",
										"adImps"		=>	"0",
										"adCost"		=>	"0"
									),
									array("AdSlot.name"	=> "slot66731-Large banner",
										"adImps"		=>	"0",
										"adCost"		=>	"0"
									),
									array("AdSlot.name"	=> "slot66732-Articles banner",
										"adImps"		=>	"0",
										"adCost"		=>	"0"
									)
								)
					);

$newArray = array();
foreach($oldArray["data"] as $k => $v){
	$newArray["data"][$oldArray["data"][$k]["AdSlot.name"]] = array("adImps" => $oldArray["data"][$k]["adImps"],
																	"adCost" => $oldArray["data"][$k]["adCost"]
																);
}
echo "<pre>";
var_dump($newArray["data"]["slot66234-Article banner"]);
echo "</pre>";

Esto me bota en mi localhost. Es PHP 5.2.16 en win7
result.jpg
 
Última edición:

deskpro123

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
2.014
[MENTION=25010]deskpro123[/MENTION] creo que no te ha funcionado porque se me olvidó ponerle las comillas al elemento del array ni dos iguales en una condición la verdad es que ese día estaría idioto perdido porque son errores muy tontos, mira la diferencia ahora quedaría así, sino te funciona dime que errores te da:

PHP:
$array_data = $response["data"]; 
for($i=0;$i<count($array_data);$i++){ 
    if($array_data[$i]['AdSlot.name'] == 'slot81098-downer'){ 
        $clave = $i; 
        break; 
    } 
} 
$imps2 = $array_data[$clave]["adImps"]; 
$dinero2=$array_data[$clave]["adCost"];

Gracias, que me ha funcionado, esta perfecto, muchisimas gracias :D
 
Arriba