루프가 진행될 때마다 항목 배열이 복제되는 것을 막으려 고합니다. 고유 어레이가 내 문제를 해결할 것이라고 생각하지만 작동하지 않는 것 같습니다. 대안이 있습니까? 아니면 제가 뭔가 잘못하고 있습니까?
이것은 내가 구문 분석하는 배열입니다. 예를 들어 가방이 여러 번 나타납니다. 한 번 나타나도록 노력하고 있습니다.
Array
(
[0] => bag
[1] => wallet
[2] => accessori
[3] => sunglass
[4] => clutch
[5] => tote
)
Array
(
[0] => handbag
[1] => faux
[2] => leather
[3] => bag
[4] => clutch
[5] => hobo
[6] => purs
[7] => wallet
[8] => tote
[9] => messeng
)
Array
(
[0] => bag
[1] => book
)
이것은 내 코드입니다.
foreach($json as $keywords){
foreach($keywords as $keyword){
print_r(array_unique($keyword['keywords']));
}
}
미리 감사드립니다.
다차원 배열에 대한 array_unique () 함수를 작성했습니다.
먼저 모든 배열을 병합하고 array_unique ()를 적용한 후 결과를 재구성했습니다.
<?php
$input = array( array('bag', 'wallet' ),
array('wallet', 'purs' ),
array('book', 'purs' )
);
print_r (arrayUniqueMultidimensial($input));
function arrayUniqueMultidimensial($input) {
$merged = array();
foreach ($input as $subArray) {
$merged = array_merge($merged, $subArray);
}
$filteredArray = array_unique($merged, SORT_STRING);
$segment = array(0); // segmentation
foreach($input as $subArray) {
$segment[] = $segment[count($segment)-1] + count($subArray);
}
$recomposed = array();
for($i=1 ; $i<count($segment) ; $i++) {
$startIndex = $segment[$i-1];
$endIndex = $segment[$i] ;
$temp = array();
for ($j=$startIndex ; $j<$endIndex ; $j++) {
if (array_key_exists($j, $filteredArray)) {
$temp[] = $filteredArray[$j];
}
}
$recomposed[] = $temp;
}
return ($recomposed);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다