Я новичок в веб-разработке.
Это часть телефонной службы, и я пытаюсь отфильтровать 3 различных массива, заполненных строками из трех запросов к базе данных: $ sfaa, $ sfipc и $ sfuaa.Мне нужно отфильтровать три массива базы данных, чтобы найти доступных агентов обслуживания клиентов.Выводом будет массив, заполненный IVR_Number для набора.
Вот пример строки: "Id", "IVR_Number", "Market_Id" "
Я должен взорватьстрока для того, чтобы получить мои данные от каждого значения в массивах.Затем, основываясь на идентификаторе «один ко многим» в каждой строке, я должен проверить, находится ли идентификатор из $ sfaa в $ sfipc или $ sfuaa.Если нет, то мне нужно построить массив с отфильтрованными записями, оттуда я должен найти значение из разобранной строки в $ sfaa, которая принадлежит этому идентификатору.Я написал следующий код, но есть более простой способ ??Я надеюсь .... Клиент должен ждать этих результатов, прежде чем двигаться вперед.Обычно есть только 10 или 15 записей.
Этот код работает. Мне просто интересно, есть ли более простой способ сделать это
Любые советы
// formalua needed to filter above results and fill $aadl array
// explode each active agent array
$activeagentsfec=0;
$aaivra= array();
$aaida= array();
foreach ($sfaa as $aavalue)
{
${'aadetails'.$activeagentsfec} = explode("'",$aavalue);
${'aaivr'.$activeagentsfec} = ${'aadetails'.$activeagentsfec}[5];
${'aaid'.$activeagentsfec} = ${'aadetails'.$activeagentsfec}[1];
array_push($aaivra, ${'aaivr'.$activeagentsfec});
array_push($aaida,${'aaid'.$activeagentsfec});
$activeagentsfec++;
}
// explode each inprogress call array
$activecallsfec=0;
$actida= array();
$acfida= array();
foreach ($sfipc as $acvalue)
{
${'acdetails'.$activecallsfec} = explode("'",$acvalue);
${'actid'.$activecallsfec} = ${'acdetails'.$activecallsfec}[5];
${'acfid'.$activecallsfec} = ${'acdetails'.$activecallsfec}[7];
array_push($actida, ${'actid'.$activecallsfec});
array_push($acfida, ${'acfid'.$activecallsfec});
$activecallsfec++;
}
// explode each unvailable agent
$unavailableagentsfec=0;
$uaaida= array();
foreach ($sfuaa as $uavalue)
{
${'uadetails'.$unavailableagentsfec} = explode("'",$uavalue);
${'uaaid'.$unavailableagentsfec} = ${'uadetails'.$unavailableagentsfec}[3];
array_push($uaaida, ${'uaaid'.$unavailableagentsfec});
$unavailableagentsfec++;
}
// create available agent array by id
$aaafec=0;
$aada= array();
foreach ($aaida as $aaidavalue)
{
if (in_array($aaidavalue,$actida,true))
$aaafec++;
elseif(in_array($aaidavalue,$acfida,true))
$aaafec++;
elseif(in_array($aaidavalue,$uaaida,true))
$aaafec++;
else
array_push($aada, $aaidavalue);
}
// available agent arry by ivr
$aadl= array();
foreach ($aada as $aadavalue)
{
$aaaivrsv= array_search($aadavalue,$aaida,true);
array_push($aadl,$aaivra[$aaaivrsv]);
}