2015-03-17 2 views
1

Привет, я новичок в php, и у меня есть массив с некоторыми общими данными в моем массиве, я пробую много кода и также ищу все больше и больше, но я не могу это сделать, пожалуйста, помогите мне.Отфильтровать общие данные в массиве

Array(
[0] => stdClass Object 
    (
     [user_id] => 52 
     [owner] => [email protected] 
     [sender] => Steve 
     [alert_id] => 18 
     [alert_community_id] => 1 
     [alert_user_id] => 52 
     [alert_text] => asdfasdf 
     [alert_url] => asdfasdf-1 
     [alert_note] => 
     [alert_source_proof] => asdfasdfasf 
     [alert_proof_image] => 
     [is_time_critical] => 0 
     [alert_reported_ip] => 80.255.4.52 
     [alert_created_time] => 2015-03-15 15:25:20 
     [direct_sending] => 0 
     [ask_to_additional_reviwer] => 0 
     [ask_additional_reviewer_at] => 
     [alert_reviewers] => 
     [alert_confirmed_by] => 56 
     [confirmed_time] => 2015-03-15 19:26:35 
     [alert_decliened_by] => 
     [decliened_time] => 
     [alert_status] => 1 
     [community_id] => 1 
     [hashtag] => #Nick 
     [community_title] => Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf 
     [community_url] => test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as 
     [user_type] => Apprentice 
     [user_type_image] => Apprentice1416902127.png 
    ) 

[1] => stdClass Object 
    (
     [user_id] => 55 
     [owner] => [email protected] 
     [sender] => Steve 
     [alert_id] => 17 
     [alert_community_id] => 1 
     [alert_user_id] => 55 
     [alert_text] => asdfasdf 
     [alert_url] => asdfasdf 
     [alert_note] => 
     [alert_source_proof] => asdfasdfsadf 
     [alert_proof_image] => 
     [is_time_critical] => 0 
     [alert_reported_ip] => 80.255.4.52 
     [alert_created_time] => 2015-03-15 15:20:34 
     [direct_sending] => 0 
     [ask_to_additional_reviwer] => 0 
     [ask_additional_reviewer_at] => 
     [alert_reviewers] => 
     [alert_confirmed_by] => 54 
     [confirmed_time] => 2015-03-15 19:21:19 
     [alert_decliened_by] => 
     [decliened_time] => 
     [alert_status] => 1 
     [community_id] => 1 
     [hashtag] => #Nick 
     [community_title] => Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf 
     [community_url] => test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as 
     [user_type] => Rising star 
     [user_type_image] => RisingStar141690.png 
    ) 

[2] => stdClass Object 
    (
     [user_id] => 55 
     [owner] => [email protected] 
     [sender] => chris 
     [alert_id] => 17 
     [alert_community_id] => 1 
     [alert_user_id] => 55 
     [alert_text] => asdfasdf 
     [alert_url] => asdfasdf 
     [alert_note] => 
     [alert_source_proof] => asdfasdfsadf 
     [alert_proof_image] => 
     [is_time_critical] => 0 
     [alert_reported_ip] => 80.255.4.52 
     [alert_created_time] => 2015-03-15 15:20:34 
     [direct_sending] => 0 
     [ask_to_additional_reviwer] => 0 
     [ask_additional_reviewer_at] => 
     [alert_reviewers] => 
     [alert_confirmed_by] => 54 
     [confirmed_time] => 2015-03-15 19:21:19 
     [alert_decliened_by] => 
     [decliened_time] => 
     [alert_status] => 1 
     [community_id] => 1 
     [hashtag] => #Nick 
     [community_title] => Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf 
     [community_url] => test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as 
     [user_type] => Rising star 
     [user_type_image] => RisingStar141690.png 
    ) 

[3] => stdClass Object 
    (
     [user_id] => 55 
     [owner] => [email protected] 
     [sender] => John 
     [alert_id] => 16 
     [alert_community_id] => 1 
     [alert_user_id] => 55 
     [alert_text] => asdf 
     [alert_url] => asdf-1 
     [alert_note] => 
     [alert_source_proof] => asfd 
     [alert_proof_image] => 
     [is_time_critical] => 0 
     [alert_reported_ip] => 80.255.4.52 
     [alert_created_time] => 2015-03-15 15:08:48 
     [direct_sending] => 0 
     [ask_to_additional_reviwer] => 0 
     [ask_additional_reviewer_at] => 
     [alert_reviewers] => 
     [alert_confirmed_by] => 56 
     [confirmed_time] => 2015-03-15 19:09:16 
     [alert_decliened_by] => 
     [decliened_time] => 
     [alert_status] => 1 
     [community_id] => 1 
     [hashtag] => #Nick 
     [community_title] => Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf 
     [community_url] => test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as 
     [user_type] => Rising star 
     [user_type_image] => RisingStar141690.png 
    ) 

)   

и я хочу выглядеть следующим образом

Array(
[0] => stdClass Object 
    (
     [user_id] => 52 
     [owner] => [email protected] 
     [sender] => Steve 
     [alert_id] => 18 
     [alert_community_id] => 1 
     [alert_user_id] => 52 
     [alert_text] => asdfasdf 
     [alert_url] => asdfasdf-1 
     [alert_note] => 
     [alert_source_proof] => asdfasdfasf 
     [alert_proof_image] => 
     [is_time_critical] => 0 
     [alert_reported_ip] => 80.255.4.52 
     [alert_created_time] => 2015-03-15 15:25:20 
     [direct_sending] => 0 
     [ask_to_additional_reviwer] => 0 
     [ask_additional_reviewer_at] => 
     [alert_reviewers] => 
     [alert_confirmed_by] => 56 
     [confirmed_time] => 2015-03-15 19:26:35 
     [alert_decliened_by] => 
     [decliened_time] => 
     [alert_status] => 1 
     [community_id] => 1 
     [hashtag] => #Nick 
     [community_title] => Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf 
     [community_url] => test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as 
     [user_type] => Apprentice 
     [user_type_image] => Apprentice1416902127.png 
    ) 

[1] => stdClass Object 
    (
     [user_id] => 55 
     [owner] => [email protected] 
     [sender] => Steve,chris,John 
     [alert_id] => 17 
     [alert_community_id] => 1 
     [alert_user_id] => 55 
     [alert_text] => asdfasdf 
     [alert_url] => asdfasdf 
     [alert_note] => 
     [alert_source_proof] => asdfasdfsadf 
     [alert_proof_image] => 
     [is_time_critical] => 0 
     [alert_reported_ip] => 80.255.4.52 
     [alert_created_time] => 2015-03-15 15:20:34 
     [direct_sending] => 0 
     [ask_to_additional_reviwer] => 0 
     [ask_additional_reviewer_at] => 
     [alert_reviewers] => 
     [alert_confirmed_by] => 54 
     [confirmed_time] => 2015-03-15 19:21:19 
     [alert_decliened_by] => 
     [decliened_time] => 
     [alert_status] => 1 
     [community_id] => 1 
     [hashtag] => #Nick 
     [community_title] => Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf 
     [community_url] => test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as 
     [user_type] => Rising star 
     [user_type_image] => RisingStar141690.png 
    ) 
) 

Пожалуйста, помогите мне

+0

вы просто пытаетесь удалить элементы в массиве, где «user_id значение дублируется? – kainaw

+0

Нет, я просто хочу получить всех отправителей и разделить их на «,» где дублируется «user_id» –

ответ

0

Проще всего ходить массив и сохранить уникальные мировоззрение объектов в новый массив, что-то вроде:

$uniqueArray = array(); 
foreach($array as $object){ 
    if(!isset($uniqueArray[$object->user_id])){ 
     $uniqueArray[$object->user_id] = $object; 
    } 
} 

Обновление после комментария Вы хотите объединить некоторые данные, но результирующий массив все равно должен быть за user_id. Таким образом, изменение контура-часть, чтобы CONCAT, если объект с user_id уже установлен:

$uniqueArray = array(); 
foreach($array as $object){ 
    if(!isset($uniqueArray[$object->user_id])){ 
     $uniqueArray[$object->user_id] = $object; 
    }else{ 
     $uniqueArray[$object->user_id]->sender .= ',' . $object->sender; 
    } 
} 

теста с примером:

<?php 
$object1 = new stdClass(); 
$object1->user_id = "52"; 
$object1->owner = "[email protected]"; 
$object1->sender = "Steve"; 
$object1->alert_id = "18"; 
$object1->alert_community_id = "1"; 
$object1->alert_user_id = "52"; 
$object1->alert_text = "asdfasdf"; 
$object1->alert_url = "asdfasdf-1"; 
$object1->alert_note = ""; 
$object1->alert_source_proof = "asdfasdfasf"; 
$object1->alert_proof_image = ""; 
$object1->is_time_critical = "0"; 
$object1->alert_reported_ip = "80.255.4.52"; 
$object1->alert_created_time = "2015-03-15 15:25:20"; 
$object1->direct_sending = "0"; 
$object1->ask_to_additional_reviwer = "0"; 
$object1->ask_additional_reviewer_at = ""; 
$object1->alert_reviewers = ""; 
$object1->alert_confirmed_by = "56"; 
$object1->confirmed_time = "2015-03-15 19:26:35"; 
$object1->alert_decliened_by = ""; 
$object1->decliened_time = ""; 
$object1->alert_status = "1"; 
$object1->community_id = "1"; 
$object1->hashtag = "#Nick"; 
$object1->community_title = "Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf"; 
$object1->community_url = "test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as"; 
$object1->user_type = "Apprentice"; 
$object1->user_type_image = "Apprentice1416902127.png"; 

$object2 = new stdClass(); 
$object2->user_id = "55"; 
$object2->owner = "[email protected]"; 
$object2->sender = "Steve"; 
$object2->alert_id = "17"; 
$object2->alert_community_id = "1"; 
$object2->alert_user_id = "55"; 
$object2->alert_text = "asdfasdf"; 
$object2->alert_url = "asdfasdf"; 
$object2->alert_note = ""; 
$object2->alert_source_proof = "asdfasdfsadf"; 
$object2->alert_proof_image = ""; 
$object2->is_time_critical = "0"; 
$object2->alert_reported_ip = "80.255.4.52"; 
$object2->alert_created_time = "2015-03-15 15:20:34"; 
$object2->direct_sending = "0"; 
$object2->ask_to_additional_reviwer = "0"; 
$object2->ask_additional_reviewer_at = ""; 
$object2->alert_reviewers = ""; 
$object2->alert_confirmed_by = "54"; 
$object2->confirmed_time = "2015-03-15 19:21:19"; 
$object2->alert_decliened_by = ""; 
$object2->decliened_time = ""; 
$object2->alert_status = "1"; 
$object2->community_id = "1"; 
$object2->hashtag = "#Nick"; 
$object2->community_title = "Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf"; 
$object2->community_url = "test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as"; 
$object2->user_type = "Rising star"; 
$object2->user_type_image = "RisingStar141690.png"; 

$object3 = new stdClass(); 
$object3->user_id = "55"; 
$object3->owner = "[email protected]"; 
$object3->sender = "chris"; 
$object3->alert_id = "17"; 
$object3->alert_community_id = "1"; 
$object3->alert_user_id = "55"; 
$object3->alert_text = "asdfasdf"; 
$object3->alert_url = "asdfasdf"; 
$object3->alert_note = ""; 
$object3->alert_source_proof = "asdfasdfsadf"; 
$object3->alert_proof_image = ""; 
$object3->is_time_critical = "0"; 
$object3->alert_reported_ip = "80.255.4.52"; 
$object3->alert_created_time = "2015-03-15 15:20:34"; 
$object3->direct_sending = "0"; 
$object3->ask_to_additional_reviwer = "0"; 
$object3->ask_additional_reviewer_at = ""; 
$object3->alert_reviewers = ""; 
$object3->alert_confirmed_by = "54"; 
$object3->confirmed_time = "2015-03-15 19:21:19"; 
$object3->alert_decliened_by = ""; 
$object3->decliened_time = ""; 
$object3->alert_status = "1"; 
$object3->community_id = "1"; 
$object3->hashtag = "#Nick"; 
$object3->community_title = "Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf"; 
$object3->community_url = "test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as"; 
$object3->user_type = "Rising star"; 
$object3->user_type_image = "RisingStar141690.png"; 

$object4 = new stdClass(); 
$object4->user_id = "55"; 
$object4->owner = "[email protected]"; 
$object4->sender = "John"; 
$object4->alert_id = "16"; 
$object4->alert_community_id = "1"; 
$object4->alert_user_id = "55"; 
$object4->alert_text = "asdf"; 
$object4->alert_url = "asdf-1"; 
$object4->alert_note = ""; 
$object4->alert_source_proof = "asfd"; 
$object4->alert_proof_image = ""; 
$object4->is_time_critical = "0"; 
$object4->alert_reported_ip = "80.255.4.52"; 
$object4->alert_created_time = "2015-03-15 15:08:48"; 
$object4->direct_sending = "0"; 
$object4->ask_to_additional_reviwer = "0"; 
$object4->ask_additional_reviewer_at = ""; 
$object4->alert_reviewers = ""; 
$object4->alert_confirmed_by = "56"; 
$object4->confirmed_time = "2015-03-15 19:09:16"; 
$object4->alert_decliened_by = ""; 
$object4->decliened_time = ""; 
$object4->alert_status = "1"; 
$object4->community_id = "1"; 
$object4->hashtag = "#Nick"; 
$object4->community_title = "Test community Nick #Nick asdfsa ds adsfa sd asdf asd asdf asf asdfa sdf"; 
$object4->community_url = "test-community-nick-nick-asdfsa-ds-adsfa-sd-asdf-asd-asdf-as"; 
$object4->user_type = "Rising star"; 
$object4->user_type_image = "RisingStar141690.png "; 

$array = array($object1, $object2, $object3, $object4); 

echo "<h1>Original array:</h1><pre>"; 
print_r($array); 
echo "</pre>"; 

$uniqueArray = array(); 
foreach($array as $object){ 
    if(!isset($uniqueArray[$object->user_id])){ 
     $uniqueArray[$object->user_id] = $object; 
    }else{ 
     $uniqueArray[$object->user_id]->sender .= ',' . $object->sender; 
    } 
} 

echo "<h1>Combined array</h1><pre>"; 
print_r($uniqueArray); 
echo "</pre>"; 

?> 
+0

Спасибо @qrazi за его работу, но как я могу получить имя отправителя, где дублируется «user_id». –

+0

Ах, я пропустил этот. Вместо! Isset() вы должны добавить это значение ... Я отредактирую свой ответ. – qrazi

+0

Хорошо спасибо, пожалуйста, обновите свой ответ, когда вы свободны. –

Смежные вопросы