Mi amigo, creo que no tiene ni idea de lo que me acaba de decir...
teniendo el array:
Código PHP :
Array
(
[0] => Array
(
[id] => 1
[nombre] => Pedro
)
[1] => Array
(
[id] => 2
[nombre] => Juan
)
)
y al recorrerlo con foreach tal y como dices:
Código PHP :
foreach($array as $a){
echo $array['id'];
}
obtienes algo asi:
Código PHP :
Notice: Undefined index: id
si pusieras algo asi:
Código PHP :
foreach($array as $a){
echo $array;
}
obtendrias:
Código PHP :
ArrayArray
asi que la solución que expones no es para nada lógica, por tanto la manera en la que "solucioné" ese problema fue de la siguiente manera:
Código PHP :
public function addAction($data,$table)
{
$fields = array();
$values = array();
foreach($data as $field => $value){
$fields[] = $field;
$values[] = $value;
}
//Busco el numero del animal dentro del array de valores
$find = array_search($values[0], $values);
/*
* Reemplazo el numero del animal por su ID
* array_splice remueve un valor y lo reemplaza por otro
*/
array_splice($values,$find,1,$this->_animal->getAnimalId($values[0]));
//Combino los array para crear uno solo
$newArray = array_combine($fields,$values);
//Inserto los datos en la DB
$this->insert($newArray, $table);
}
$instancia->addAction($instancia->addValue($array, 'med_id', $instancia->lastId()),'tratamientos');
Lo malo aqui es que la propiedad "id,nombre" tengo que separarla y en algun momento podria poner "nombre,id" y ahora los valores serian el nombre y los valores serian los id, asi que seria mas sencillo separar las propiedades como $id, $value (nombre) y asi trabajar de manera independiente sin usar explode();
Gracias y ojalá a alguien le ayude...