1
PHP / [Ayuda] Arrays
« en: 26 de Marzo de 2012, 05:41:30 am »
Estoy haciendo un metodo para imprimir el Primer, y Ultimo nodo de un Array, y elegir Key o Value, para luego usar un condicional if()
El que hice es funcional, pero capaz se puede hacer una mejor manera..
Y luego por ej. lo uso como:
Haciendo que agregue , a todos menos al ultimo..
Ventaja que tengo a diferencia de antes:
No usar count($array) para contar cuantos nodos hay, ni $var++ dentro de un bucle for() o foreach() para saber si es el Primero o Ultimo nodo, y dsp uso un if()
Solo llamo al metodo, y utilizo un if(), mejorando la sintaxis de mi codigo
Para aquellos que no lo sabian, espero que les sirva como aporte
Espero que me puedan ayudar si saben como mejorar el script, gracias.
El que hice es funcional, pero capaz se puede hacer una mejor manera..
Código: [Seleccionar]
# $get_node = array
# $get_type = Key o Value
# $get_position = Primer o Ultimo nodo
private function FilterArray($get_node, $get_type, $get_position)
{
if($get_position=="first"){
$node=array_slice($get_node, 0); // Obtengo primer nodo
}
else if($get_position=="last"){ // O este First, o es Last nomas
$node=array_slice($get_node, -1); // Obtengo el ultimo nodo
}
if($get_type=="key"){
$node=key($node); // Obtengo la key del nodo
}
else if($get_type=="value"){ // O es Key, o es Value nomas
$node=current($node); // Obtengo el value del nodo
}
return $node;
}
Y luego por ej. lo uso como:
Código: [Seleccionar]
$lastNode=$this->FilterArray($this->fields, 'key', 'last');
foreach($node as $key=>$value){
$this->query.=$key;
if($field!=$lastNode){ $this->query.=","; }
}
Haciendo que agregue , a todos menos al ultimo..
Ventaja que tengo a diferencia de antes:
No usar count($array) para contar cuantos nodos hay, ni $var++ dentro de un bucle for() o foreach() para saber si es el Primero o Ultimo nodo, y dsp uso un if()
Solo llamo al metodo, y utilizo un if(), mejorando la sintaxis de mi codigo
Para aquellos que no lo sabian, espero que les sirva como aporte

Espero que me puedan ayudar si saben como mejorar el script, gracias.