2013-02-26 4 views
2

나는 개체의 배열을 가지고,하지만 난 그들로부터 몇 가지 속성에 의해 유사한 개체를 제거해야합니다 예를 들어배열에서 비슷한 개체를 제거 하시겠습니까?

: (만약 이것에 대한 배열에서 하나 개의 객체를 만드는 방법

array(12) { 
    [0]=> 
    object(stdClass)#848 (5) { 
    ["variant"]=> 
    object(stdClass)#849 (4) { 
     ["name"]=> 
     string(8) "Alex"  
    } 
    ["age"]=> 
    int(10) 
    } 
    [1]=> 
    object(stdClass)#851 (5) { 
    ["variant"]=> 
    object(stdClass)#852 (4) { 
     ["name"]=> 
     string(8) "Alex" 
    } 
    ["age"]=> 
    int(10) 
    } 

예를 들어 이름 속성에서만 비교해야합니까?)

여전히 문제가 있습니다.

업데이트

나는 개체의 새로운 배열을 작성했습니다 :

$objects = array(
    (object)array('name'=>'Stiven','age'=>25,'variant'=>(object)array('surname'=>'Sigal')), 
    (object)array('name'=>'Michael','age'=>30,'variant'=>(object)array('surname'=>'Jackson')), 
    (object)array('name'=>'Brad','age'=>35,'variant'=>(object)array('surname'=>'Pit')), 
    (object)array('name'=>'Jolie','age'=>35,'variant'=>(object)array('surname'=>'Pit')), 
); 
echo "<pre>"; 
print_r($objects); 

그래서 내가해야 할 일을 객체 속성 (variant-> 성씨와 나이)를 비교하는 것입니다, 만약 두 객체는 ​​비슷한 객체를 가지고 있습니다.

solution의 절반은 다음과 같습니다

$tmp = array(); 
foreach ($objects as $item=>$object) 
{ 
    $tmp[$object->variant->surname][$object->age] = $object; 
} 

print_r($tmp); 

이 Unfortunatelly 내가 객체의 이전 스타일의 배열이 필요합니다.

+0

당신은 사용할 수 있습니다에서 인용'... 콜백으로 –

+0

을 array_walk' 그리고 같은 이름으로 여러 개체가있는 경우 어떤 일이 일어날 것인가? – Jon

+0

동일한 이름을 가진 여러 객체가 배열 중 하나에 있어야합니다. – Smash

답변

0

예를 발견했습니다.

<?php 
$a = array ( 
    0 => array ('value' => 'America',), 
    1 => array ('value' => 'England',), 
    2 => array ('value' => 'Australia',), 
    3 => array ('value' => 'America',), 
    4 => array ('value' => 'England',), 
    5 => array ('value' => 'Canada',), 
); 

$tmp = array(); 

foreach ($a as $row) 
    if (!in_array($row,$tmp)) array_push($tmp,$row); 

print_r ($tmp); 
?> 

here

+0

또한 array_unique() 함수가 있지만 시도하지 않았습니다. –

+0

저는 비슷한 대상을 가지고 있지 않습니다. 비슷한 속성 2 개와 다른 대상 1 개가있는 개체가 있습니다. 그래서 저는이 속성들에 의해서만 비교할 필요가 있습니다. – Smash

+0

업데이트 됨, 더 나은 예가되기를 바랍니다. – Smash

관련 문제