[Çözüldü] iki farklı jsona ait arrayları tarihe göre sıralamak php

Başlatan yavuz21, 15 Ocak 2013 - 14:48:28

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

yavuz21

Merhaba arkadaşlar yapmaya çalıştığım Facebook ve twitter dan gelen json değerlerini birleştirip created_at ve created_time arraylarındaki tarih değerlerine göre sıralayarak Gwibber benzeri bir sosyal akış takip programı yazmak. Jsonları tek tek alıp foreach ile çıktı verebiliyorum fakat bunları birleştirip tarihe göre nasıl sıralayacağımı bir türlü  beceremedim. Array merge  ile denedim ama oda olmadı bilen arkadaşlar fikir verirlerse güzel olur.
Array
(
    [0] => stdClass Object
        (
            [created_at] => Tue Jan 15 12:37:24 +0000 2013
            [id] => 291162167145799680
            [id_str] => 291162167145799680
            [text] => Önemli Olan Zamana Bırakmak Değil,Zamanla Bırakmamaktır.Şimdi Bana Geçen O Zamanın Sancısı Kalır.. [NAZIM HİKMET] #NazımHikmetŞiirleri
            [source] => web
            [truncated] =>
            [in_reply_to_status_id] =>
            [in_reply_to_status_id_str] =>
            [in_reply_to_user_id] =>
            [in_reply_to_user_id_str] =>
            [in_reply_to_screen_name] =>
            [user] => stdClass Object
                (
                    [id] => 381750448
                    [id_str] => 381750448
                    [name] => Deniz Gezmiş
                    [screen_name] => DenizGezmis25
                    [location] =>
                    [url] =>
                    [description] => Devrim İşçisi,Barış Savaşçısı,Halk Devrimcisi..
                    [protected] =>
                    [followers_count] => 17441
                    [friends_count] => 449
                    [listed_count] => 20
                    [created_at] => Wed Sep 28 21:39:16 +0000 2011
                    [favourites_count] => 10
                    [utc_offset] => -18000
                    [time_zone] => Quito
                    [geo_enabled] =>
                    [verified] =>
                    [statuses_count] => 2793
                    [lang] => tr
                    [contributors_enabled] =>
                    [is_translator] =>
                    [profile_background_color] => C1DEEB
                    [profile_background_image_url] => http://a0.twimg.com/profile_background_images/736262293/1101364f569aae49434db26b4db85e3e.jpeg
                    [profile_background_image_url_https] => https://si0.twimg.com/profile_background_images/736262293/1101364f569aae49434db26b4db85e3e.jpeg
                    [profile_background_tile] => 1
                    [profile_image_url] => http://a0.twimg.com/profile_images/2848135376/59dbb420c0a15d2de1ea822f7c59863c_normal.jpeg
                    [profile_image_url_https] => https://si0.twimg.com/profile_images/2848135376/59dbb420c0a15d2de1ea822f7c59863c_normal.jpeg
                    [profile_banner_url] => https://si0.twimg.com/profile_banners/381750448/1355338701
                    [profile_link_color] => 0084B4
                    [profile_sidebar_border_color] => FFFFFF
                    [profile_sidebar_fill_color] => DDEEF6
                    [profile_text_color] => 333333
                    [profile_use_background_image] => 1
                    [default_profile] =>
                    [default_profile_image] =>
                    [following] => 1
                    [follow_request_sent] =>
                    [notifications] =>
                )

            [geo] =>
            [coordinates] =>
            [place] =>
            [contributors] =>
            [retweet_count] => 4
            [favorited] =>
            [retweeted] =>
        )

    [1] => stdClass Object
        (
            [created_at] => Tue Jan 15 12:36:30 +0000 2013
            [id] => 291161938573021184
            [id_str] => 291161938573021184
            [text] => RT @iyiTweet: "İnsanlar ne kadar zeki olursa olsun, sevdiği kişinin bir sözüne kanacak kadar aptaldır aslında." /Jean Christophe/
            [source] => TweetDeck
            [truncated] =>
            [in_reply_to_status_id] => ......... Diye devam ediyor


{
   "data": [
      {
         "id": "254710351224891_573914782637778",
         "from": {
            "category": "Website",
            "name": "Caps",
            "id": "254710351224891"
         },
         "story": "Caps added a new photo.",
         "story_tags": {
            "0": [
               {
                  "id": "254710351224891",
                  "name": "Caps",
                  "offset": 0,
                  "length": 4,
                  "type": "page"
               }
            ]
         },
         "picture": "http://photos-c.ak.fbcdn.net/hphotos-ak-snc6/734939_573914759304447_405953501_s.jpg",
         "link": "http://www.facebook.com/photo.php?fbid=573914759304447&set=a.254728337889759.79178.254710351224891&type=1&relevant_count=1",
         "icon": "http://static.ak.fbcdn.net/rsrc.php/v2/yz/r/StEh3RhPvjk.gif",
         "actions": [
            {
               "name": "Comment",
               "link": "http://www.facebook.com/254710351224891/posts/573914782637778"
            },
            {
               "name": "Like",
               "link": "http://www.facebook.com/254710351224891/posts/573914782637778"
            }
         ],
         "privacy": {
            "value": ""
         },
         "type": "photo",
         "status_type": "added_photos",
         "object_id": "573914759304447",
         "created_time": "2013-01-15T12:40:00+0000",
         "updated_time": "2013-01-15T12:42:10+0000",
         "shares": {
            "count": 1
         },
         "likes": {
            "data": [
               {
                  "name": "U\u011fur Can Akg\u00fcl",
                  "id": "100000789090440"
               },
               {
                  "name": "Edanur Durusoy",
                  "id": "100000844356636"
               },
               {
                  "name": "H\u00fcseyin \u00d6zcan",
                  "id": "100002375087283"
               },
               {
                  "name": "Turgay Uyar",
                  "id": "100001442341100"
               }
            ],
            "count": 107
         },
         "comments": {
            "data": [
               {
                  "id": "254710351224891_573914782637778_3044683",
                  "from": {
                     "name": "Alp Tekin",
                     "id": "1557648334"
                  },
                  "message": "yalarun .",
                  "created_time": "2013-01-15T12:41:47+0000"
               },
               {
                  "id": "254710351224891_573914782637778_3044685",
                  "from": {
                     "name": "Azad Murat Demirarslan",
                     "id": "1169004619"
                  },
                  "message": ":D aynennn",
                  "created_time": "2013-01-15T12:42:10+0000"
               }
            ],
            "count": 20
         }
      },
      {
         "id": "147948771937875_438451066220976",
         "from": {
            "category": "Public figure",
            "name": "D\u00fcnyan\u0131n \u00d6zledi\u011fi Lider Gazi Mustafa Kemal Atat\u00fcrk",
            "id": "147948771937875"
         },
         "message": "O KADAR!",
         "picture": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash3/546923_438451049554311_1970812916_s.jpg",
         "link": "http://www.facebook.com/photo.php?fbid=438451049554311&set=a.400823603317056.91975.147948771937875&type=1&relevant_count=1",
         "icon": "http://static.ak.fbcdn.net/rsrc.php/v2/yz/r/StEh3RhPvjk.gif",
         "actions": [
            {
               "name": "Comment",
               "link": "http://www.facebook.com/147948771937875/posts/438451066220976"
            },
            {
               "name": "Like",
               "link": "http://www.facebook.com/147948771937875/posts/438451066220976" ........ devam ediyor

alquirel

Gwibber'da işler nasıl yürüyor bilmiyorum ama ben olsam iki diziyi (array) birleştirmek yerine üçüncü bir dizi kullanırım.
En basit yolla bu dizi sadece şu üç bilgiyi tutar: Akışın kaynağı (twitter/facebook) - Akışın "id" değeri - Akışın oluşturulma tarihi.

Bu diziyi oluştururken de her iki akış dizisini tek tek inceler, değerleri diziye önce sırasız koyarsın. Tüm dizi oluştuktan sonra da diziyi "sort" fonksiyonlarından biriyle "oluşturulma tarihi" değerine göre sıralarsın. Sonra da sıralanmış dizi üzerinden tek tek akışları ekrana koyarsın.

Dilersen diziyi genişletip akışın metni gibi işine yarayacak değerleri de diziye dahil edersin, akışları ekrana basarken ilk etapta ham twitter ve facebook dizilerini tekrardan irdelemek zorunda kalmazsın.

Umarım anlatabilmişimdir.

yavuz21

@alquirel bende gelen değerleri json_decode ile çözüp aynı değerleri aynı değişkenlere atayarak  tekrar json_encode ile farklı bir json dosyası oluşturdum sorun çözüldü daha çok sorun çıkar bu projede ama güzel bir şey olacak İnşalah.