아래의 코드를 몇 시간 동안 작동 시키려고 노력했지만 성공하지 못했습니다.배열 조합
Array ([0] => Array ([0] => 2007)
[1] => Array ([0] => 2008)
[2] => Array ([0] => 2009)
...
)
이 plusMinus 일 : 그러니까 기본적으로 내가 원하는
Array ([0] => Array ([date] => 2007 [plus]=> 2)
[1] => Array ([date] => 2008 [minus]=> 1)
[2] => Array ([date] => 2009 [plusMinus]=> 0)
[3] => Array ([date] => 2010 [plus] => 1 [minus]=>1)
...
)
을 :
Array ([0] => Array ([plus] => 2 [date] => 2007)
[1] => Array ([minus] => 1 [date] => 2008)
[2] => Array ([minus] => 1 [date] =>)
[3] => Array ([plus] => 1 [date] => 2010 [minus] => 1)
)
내가이로 결합하기 위해 노력 해왔다
나는이 날짜 배열이 plusMinus 배열에 날짜 배열의 값이 있는지 확인합니다. true의 경우, plusMinus 배열의 날짜와 값은 날짜 배열의 항목을 대체합니다. false 인 경우 원래 날짜 배열 항목은 [plusMinus] => 0 키 - 값 쌍으로 보완됩니다.
내가 그것을 할 시도하는 방법은 이것이다 :
foreach ($filler as $key1 => $value1)
{
foreach ($plusMinus as $key2 => $value2)
{
if ($value1['0'] !== $value2['date'])
{
$value1['plusMinus'] = '0';
$result2[$key1][] = $value1;
}
elseif ($value1['0'] == $value2['date'])
{
if (array_key_exists('plus',$value2))
{
$value1['plus'] = $value2['plus'];
$result2[$key1][]=$value1;
}
elseif(array_key_exists('minus',$value2))
{
$value1['minus'] = $value2['minus'];
$result2[$key1][]=$value1;
}
elseif(array_key_exists('minus',$value2) &&
array_key_exists('plus',$value2))
{
}
}
}
}
$valuesComplete = array();
foreach ($result2 as $value) {
$result2 = $value['0'];
array_push($valuesIncomplete, $result2);
}
return $valuesComplete;
대신 원하는 결과의 난이 얻을 위에서 설명 :
Array ([0] => Array
([0] => 2007 [plus] => 2)
[1] => Array ([0] => 2008 [plusMinus => 0)
[2] => Array ([0] => 2009 [plusMinus] => 0)
[3] => Array ([0] => 2010 [plusMinus] => 0)
[4] => Array ([0] => 2011 [plusMinus] => 0)
[5] => Array ([0] => 2012 [plusMinus] => 0)
[6] => Array ([0] => 2013 [plusMinus] => 0)
)
나는 무엇을 놓치고? 어떤 도움을 주셔서 감사합니다!
나는 그것을 완전히 놓치고 있지만 $ valuesComplete 및 $ valuesIncomplete와의 불일치가 없습니까? – Borniet
우선 무엇보다도 간결함을 위해 그 elseif를 걷어 차서 계속 사용하십시오. (루프에서) 제발 뭘하고 있는지보십시오 ... 나는 사람들이 문제를 일으키는 것을 복잡하게 만드는 이유를 이해하지 못합니다 ... :) – Ihsan