다차원 배열에서 중복을 삭제하려고합니다. 내 배열은 다음과 같습니다 :다차원 배열에서 중복을 삭제 하시겠습니까?
a => array (a,b), b => array (b,a), c => array (a,b,c)
for 루프를 사용하여 시도했지만 설정을 변경했지만 색인이 변경됩니다. 중복 된 값을 확인하고 전체 키를 삭제하는 간단한 함수가 있습니까? 문자열 abcdef에서 모든 조합으로 다차원 배열을 생성합니까?
출력은 a => array (a,b), c => array (a,b,c)
이어야합니다. 키 b가 어레이에서 제거됩니다.
이 함수는 다른 모든 키 - 값과 비교하여 키의 모든 값을 검사해야합니다. 그것은 모든 순열을 제거하는 것입니다.
나는 이것을 시도했지만 내 인덱스를 파괴하고 전체 배열이 엉망이됩니다 : 그래서 여기
for($i=0;$i<=count($newarr[$i]);++$i)
{
for($k=0;$k<=count($newarr[$i]["grp"]);++$k)
{
$plz=$newarr[$i]["grp"][$k]["plz"];
$rank=$newarr[$i]["grp"][$k]["rank"];
for($j=$i+1;$j<=count($newarr);++$j)
{
if (!$skip[$j])
{
for ($l=0;$l<=count($newarr[$j]["grp"]);++$l)
{
if ($plz==$newarr[$j]["grp"][$l]["plz"]
&& $rank==$newarr[$j]["grp"][$l]["rank"]
)
{
unset($newarr[$j]["grp"][$l]);
//$newarr=array_values($newarr);
}
}
}
}
}
}
'unset()'을 사용하면 색인이 전혀 변경되지 않으므로 현재 코드를 표시 할 수 있습니까? – HamZa
모든 순열을 제거해야하지만 for 루프와 unset이 작동하지 않습니다. 나는 당신이 배열을 다시 색인 할 필요가 있음을 읽고 array_values를 쓸모 없게 시도했다. – Bytemain
예상되는 출력을 제공 할 수 있습니까? – HamZa