필자는 배열에 대해 언급 할 것입니다. 배열에서 중복 키를 제거해야하지만 다른 요소를 병합 유지해야합니다. 나는 이것이 충분히 이해할만큼 깨끗하지 않다는 것을 알고 있으므로 설명 할 것이다.다차원 배열에서 중복 요소를 제거하는 방법
예상 한 결과입니다.
Main Cat Items 1 -> Categories 1 --> Sub Cat Items 1
Categories 1 --> Sub Cat Items 2
Categories 2 --> Sub Cat Items 3
Categories 3 --> Sub Cat Items 4
Main Cat Items 2 -> Categories 4 --> Sub Cat Items 5
그러나 쿼리에서 나는 이와 같은 것을 얻고 있습니다.
Main Cat Items 1 -> Categories 1 --> Sub Cat Items 1
Main Cat Items 1 -> Categories 1 --> Sub Cat Items 2
Main Cat Items 1 -> Categories 2 --> Sub Cat Items 3
Main Cat Items 1 -> Categories 3 --> Sub Cat Items 4
Main Cat Items 2 -> Categories 4 --> Sub Cat Items 5
내 쿼리로 결과를 구체화 할 수 없습니다. 그래서 나는 그것을 PHP로해야만한다. 이것이 내가 시도한 것입니다.
$input = array_map("unserialize", array_unique(array_map("serialize", $test)));
이 내용을 사용하여 아무 것도 변경되지 않았습니다. 동일한 배열이 중복되어 있습니다.
$serialized = array_map('serialize', $test);
$unique = array_unique($serialized);
$tdsdsdf = array_intersect_key($test, $unique);
이 하나도 동일합니다.
$unique = array();
foreach ($test as $key => $value) {
if (!array_key_exists($value['main_cat_id'], $unique)) {
$unique[$value['main_cat_id']] = $value;
}
}
이 경우 모든 요소가 포함 된 모든 중복이 제거됩니다.
이것은 db 쿼리 바로 다음에 오는 배열입니다.
Array
(
[0] => Array
(
[main_cat_id] => 1
[main_cat_name] => main cat 1
[cat_id] => 1
[cat_name] => cat1 parent 1
[sub_cat_name] => sub 1 cat1 parent 1
)
[1] => Array
(
[main_cat_id] => 1
[main_cat_name] => main cat 1
[cat_id] => 1
[cat_name] => cat1 parent 1
[sub_cat_name] => sub 2 cat1 parent 1
)
[2] => Array
(
[main_cat_id] => 1
[main_cat_name] => main cat 1
[cat_id] => 4
[cat_name] => cat2 parent 1
[sub_cat_name] => sub 3 cat 4 parent 1
)
[3] => Array
(
[main_cat_id] => 1
[main_cat_name] => main cat 1
[cat_id] => 5
[cat_name] => cat3 parent 1
[sub_cat_name] =>
)
[4] => Array
(
[main_cat_id] => 2
[main_cat_name] => main cat 2
[cat_id] => 6
[cat_name] => cat 4 parent 2
[sub_cat_name] =>
)
[5] => Array
(
[main_cat_id] => 2
[main_cat_name] => main cat 2
[cat_id] => 7
[cat_name] => cat 5 parent 2
[sub_cat_name] =>
)
[6] => Array
(
[main_cat_id] => 3
[main_cat_name] => main cat 3
[cat_id] => 8
[cat_name] => cat 6 parent 3
[sub_cat_name] =>
)
)
PHP의 array_unique – Sekai
간단한 array_unique가 작동하지 않습니다. 감사합니다. 어쨌든. – Yasitha
아직 도움을 얻을 수 없습니까? – Yasitha