
Hola a todos tengo un problema con una función que necesito para agrupar un array
Publicado por Andres (1 intervención) el 21/10/2021 17:47:17
Cuando llega a la line a $keys = array_keys($array[0]); no me trae el dato me sale undefined offset : 0
foreach ($dat as &$idfactura) {
if($idfactura != '') {
$search1 = "SELECT * FROM CO.FacturaMaestro WHERE Id='$idfactura'";
$res1 = sqlsrv_query($conn2, $search1);
$row1 = sqlsrv_fetch_array($res1);
$perid = $row1['PersonaId'];
$Idfactura = $row1['Id'];
$BlId = $row1['BlId'];
$Facxpersona = array(
'PersonaId' => $perid,
'Id' => $Idfactura,
'BlId' => $BlId,
);
}
}
function agrupararray($array,$groupkey)
{
if (count($array)>0)
{
$removekey = array_search($groupkey, $keys); if ($removekey===false)
return array("Clave \"$groupkey\" no existe");
else
unset($keys[$removekey]);
$groupcriteria = array();
$return=array();
foreach($array as $value)
{
$item=null;
foreach ($keys as $key)
{
$item[$key] = $value[$key];
}
$busca = array_search($value[$groupkey], $groupcriteria);
if ($busca === false)
{
$groupcriteria[]=$value[$groupkey];
$return[]=array($groupkey=>$value[$groupkey],'groupeddata'=>array());
$busca=count($return)-1;
}
$return[$busca]['groupeddata'][]=$item;
}
return $return;
}
else
return array();
}
$filtropersnoa= agrupararray($Facxpersona, $Idfactura);
foreach ($dat as &$idfactura) {
if($idfactura != '') {
$search1 = "SELECT * FROM CO.FacturaMaestro WHERE Id='$idfactura'";
$res1 = sqlsrv_query($conn2, $search1);
$row1 = sqlsrv_fetch_array($res1);
$perid = $row1['PersonaId'];
$Idfactura = $row1['Id'];
$BlId = $row1['BlId'];
$Facxpersona = array(
'PersonaId' => $perid,
'Id' => $Idfactura,
'BlId' => $BlId,
);
}
}
function agrupararray($array,$groupkey)
{
if (count($array)>0)
{
1
$keys = array_keys($array[0]);
return array("Clave \"$groupkey\" no existe");
else
unset($keys[$removekey]);
$groupcriteria = array();
$return=array();
foreach($array as $value)
{
$item=null;
foreach ($keys as $key)
{
$item[$key] = $value[$key];
}
$busca = array_search($value[$groupkey], $groupcriteria);
if ($busca === false)
{
$groupcriteria[]=$value[$groupkey];
$return[]=array($groupkey=>$value[$groupkey],'groupeddata'=>array());
$busca=count($return)-1;
}
$return[$busca]['groupeddata'][]=$item;
}
return $return;
}
else
return array();
}
$filtropersnoa= agrupararray($Facxpersona, $Idfactura);
Valora esta pregunta


0