내 응용 프로그램에는 UI 양식에서 얻을 수있는 몇 가지 매개 변수 (zone_id, startdate, enddate, brand, model)가 있습니다. 이러한 각 매개 변수는 하나 이상의 매개 변수를 포함하는 배열입니다.순열을 기반으로 키를 생성하는 최적의 알고리즘
Array
(
[sel_date_option] => today
[startdate] => 2011-09-19
[enddate] => 2011-09-19
[zone_id] => 1576,1562,1561
[model] => Array
(
[0] => A300
)
[brand] => Array
(
[0] => ACTS
)
)
지금, 나는 이러한 매개 변수의 조합입니다 키를 생성하려면 :
내 폼 매개 변수는 다음과 같이 보인다. 그들은 다음과 같은 것일 수 있습니다 :
[zone_id]_[model]_[brand]_[model]_[startdate]_[enddate]
위의 모든 가능한 배열을 나타냅니다. 같은 STARTDATE을주는 내부
1576_ACTS_A300_2011-09-19
1562_ACTS_A300_2011-09-19
1561_ACTS_A300_2011-09-19
을 또한 2011-09-19부터 2011-09-21까지 같은 기간을 입력 할 수 있습니다 한번 종료 날짜 : 위의 입력을 위해, 나는 다음 키를 얻어야한다. 내가 뭐하는 거지 것은 처음에는 배열을 만드는
Array
(
[0] => Array
(
[0] => 1576_DZ_A300
)
[1] => Array
(
[0] => 1576_DZ_A300
[1] => 1562_DZ_A300
)
[2] => Array
(
[0] => 1576_DZ_A300
[1] => 1562_DZ_A300
[2] => 1561_DZ_A300
)
[3] => Array
(
[0] => 1576_DZ_A300
[1] => 1562_DZ_A300
[2] => 1561_DZ_A300
[3] => 1563_DZ_A300
)
)
입니다 :
내가 뭐하는 거지 것은 내가 모든 매개 변수 배열을 통해 반복 중첩 된 사용 후 다음과 같은 배열의 무언가의 복잡한 배열을 만드는 오전입니다 나는 가능한 모든 모델에 중첩 루프를 사용하여 루프와 같은 배열 브랜드입니다 그리고
Array
(
[0] => 1576
[1] => 1562
[2] => 1561
[3] => 1563
)
:
function getInventoryData($criteria)
{
$index = "";
if($criteria['zone_id']!='')
{
$zone = explode(',', $criteria['zone_id']);
for($i=0;$i<count($zone);$i++)
{
$index[] .= $zone[$i];
}
echo '<pre>';print_r($index);exit;
}
if(!empty($criteria['model']))
{
foreach($index as $key=>$value)
{
foreach($criteria['model'] as $model)
{
$temparr[] = $index[$key].'_'.$model;
}
$index[$key] = $temparr;
}
}
을 모든 영역으로
이제 이것을 달성 할 수있는 효율적인 방법이 있습니까?
또한는, 상기 방법과 관련된 다른 오버 헤드가 :
가상기 생성 된 키를 판독하는 동안, I는 모든 레벨을 통해 대량의 데이터 시퀀스의 경우에 루프가 복잡도 실제로 문제가 될 수있다 우려의. 난 당신이 정확하게 뭘 하려는지 이해한다면
감사 @DaveRandom, 내가 3/4 수준에 대한에만 관심이었다 중첩하는 것이지만 실제로 이것은 배열 키의 단일 레벨 만 생성하므로 편리합니다. – debaShish