2013-07-20 5 views
0

Через много времени я создал функцию, которая выводит массив последних сообщений с любого сайта в многосетевой сети WP.Реорганизация массива объектов и массивов WP_Post

Теперь у меня возникли проблемы с получением этого массива в формате, позволяющем легко записывать сообщения.

ИСТОЧНИК МАСШТАБА (есть дополнительные элементы объекта WP_Post, которые я опустил для краткости).

Array 
(
    [0] => Array 
     (
      [2013-07-15 04:19:59] => WP_Post Object 
       (
        [ID] => 1008 
        [post_author] => 52 
        [post_date] => 2013-07-15 04:19:59 
        [post_content] => This evening, we witnessed yet another travesty of justice in the ‘not guilty’ verdict on all counts against George Zimmerman the vigilante murderer of Trayvon Martin. 
        [post_title] => Initial Statement on Verdict of George Zimmerman Trial From Occu-Evolve 
        [guid] => http://occuevolve.web.net/?p=1 
       ) 

      [2013-07-11 12:14:59] => WP_Post Object 
       (
        [ID] => 889 
        [post_author] => 1 
        [post_date] => 2013-07-11 12:14:59 
        [post_content] => Adam Weissman of OWS TradeJustice will be giving a talk on TPP (The Trans Pacific Partnership) on Sunday from 2-3 at Columbia. 
        [post_title] => This Sunday, Come to hear a talk on TPP – The Bankster’s Secret Plan to Escape Regulation and Kill Public Banks 
        [guid] => http://alternativebanking.web.net/?p=889 
       ) 
      [2013-07-09 22:29:41] => WP_Post Object 
       (
        [ID] => 883 
        [post_author] => 1 
        [post_date] => 2013-07-09 22:29:41 
        [post_content] => It was just publicly and formally acknowledged, five years after AIG cost the US taxpayers billions of dollars that AIG is still a major problem. 
        [post_title] => AIG is still a threat to financial stability 
        [guid] => http://alternativebanking.web.net/?p=883 
       ) 

      [2013-07-05 18:01:42] => WP_Post Object 
       (
        [ID] => 561 
        [post_author] => 12 
        [post_date] => 2013-07-05 18:01:42 
        [post_content] => 
        [post_title] => The Good, The Bad, & The Ugly - Week of 7/1/2013 
        [guid] => http://occupythesec.web.net/?p=561 
       ) 

      [2013-07-01 13:21:40] => WP_Post Object 
       (
        [ID] => 965 
        [post_author] => 51 
        [post_date] => 2013-07-01 13:21:40 
        [post_content] => Crossposted from mathbabe.org. Opinions expressed are those of Cathy O'Neil. 
        [post_title] => Payroll cards: "It costs too much to get my money" (#OWS) 
        [guid] => http://alternativebanking.web.net/?p=880 
       ) 

      [2013-06-28 18:36:27] => WP_Post Object 
       (
        [ID] => 553 
        [post_author] => 50 
        [post_date] => 2013-06-28 18:36:27 
        [post_content] => 
        [post_title] => The Good, The Bad, & The Ugly - Week of 6/24/2013 
        [guid] => http://occupythesec.web.net/?p=553 
       ) 

      [2013-06-21 15:12:45] => WP_Post Object 
       (
        [ID] => 543 
        [post_author] => 50 
        [post_date] => 2013-06-21 15:12:45 
        [post_content] => 
        [guid] => http://occupythesec.web.net/?p=543 

       ) 

     ) 

    [1] => Array 
     (
      [http://occuevolve.web.net/?p=1] => http://localhost/groups.occupy.net/web/occuevolve/2013/07/15/initial-statement-on-verdict-of-george-zimmerman-trial/ 
      [http://occupythesec.web.net/?p=561] => http://localhost/groups.occupy.net/web/occupythesec/2013/07/05/the-good-the-bad-the-ugly-week-of-712013/ 
      [http://occupythesec.web.net/?p=553] => http://localhost/groups.occupy.net/web/occupythesec/2013/06/28/the-good-the-bad-the-ugly-week-of-6242013/ 
      [http://alternativebanking.web.net/?p=889] => http://localhost/groups.occupy.net/web/altbanking/2013/07/this-sunday-come-to-hear-a-talk-on-tpp-the-banksters-secret-plan-to-escape-regulation-and-kill-public-banks/ 
      [http://alternativebanking.web.net/?p=883] => http://localhost/groups.occupy.net/web/altbanking/2013/07/aig-is-still-a-threat-to-financial-stability/ 
      [http://alternativebanking.web.net/?p=880] => http://localhost/groups.occupy.net/web/altbanking/2013/07/payroll-cards-it-costs-too-much-to-get-my-money-ows/ 
      [http://occupythesec.web.net/?p=543] => http://localhost/groups.occupy.net/web/occupythesec/2013/06/21/the-good-the-bad-the-ugly-week-of-61713/ 
     ) 

    [2] => Array 
     (
      [http://occuevolve.web.net/?p=1] => 4 
      [http://occupythesec.web.net/?p=561] => 3 
      [http://occupythesec.web.net/?p=553] => 3 
      [http://alternativebanking.web.net/?p=889] => 2 
      [http://alternativebanking.web.net/?p=883] => 2 
      [http://alternativebanking.web.net/?p=880] => 2 
      [http://occupythesec.web.net/?p=543] => 3 
     ) 

) 

желаемому результату

Array 
(
    [http://occuevolve.web.net/?p=1] => Array 
     (
     [ID] => 1008 
     [post_author] => 52 
     [post_date] => 2013-07-15 04:19:59 
      [post_content] => This evening, we witnessed yet another travesty of justice in the ‘not guilty’ verdict on all counts against George Zimmerman the vigilante murderer of Trayvon Martin. 
     [post_title] => Initial Statement on Verdict of George Zimmerman Trial From Occu-Evolve 
     [post_url] => http://localhost/groups.occupy.net/web/occuevolve/2013/07/15/initial-statement-on-verdict-of-george-zimmerman-trial/ 
     [blog_id] => 4 
     ) 

    [http://alternativebanking.web.net/?p=889] => Array 
     (
     [ID] => 889 
     [post_author] => 1 
     [post_date] => 2013-07-11 12:14:59 
      [post_content] => Adam Weissman of OWS TradeJustice will be giving a talk on TPP (The Trans Pacific Partnership) on Sunday from 2-3 at Columbia. 
     [post_title] => This Sunday, Come to hear a talk on TPP – The Bankster’s Secret Plan to Escape Regulation and Kill Public Banks 
     [post_url] => http://localhost/groups.occupy.net/web/occupythesec/2013/07/05/the-good-the-bad-the-ugly-week-of-712013/ 
     [blog_id] => 3 
     ) 

    [http://alternativebanking.web.net/?p=883] => Array 
     (
     [ID] => 883 
     [post_author] => 1 
     [post_date] => 2013-07-09 22:29:41 
      [post_content] => It was just publicly and formally acknowledged, five years after AIG cost the US taxpayers billions of dollars that AIG is still a major problem. 
     [post_title] => AIG is still a threat to financial stability 
     [post_url] => http://localhost/groups.occupy.net/web/occupythesec/2013/06/28/the-good-the-bad-the-ugly-week-of-6242013/ 
     [blog_id] => 3 
     ) 
etc..... 
) 

Примечание:

  • $ массив [1] содержит POST_URL
  • $ массив [2] содержит blog_id

ответ

3

Я думаю, что это сделает это за вас, но я не проверял его.

foreach ($array[0] as $wp_post){ 
    $desired_array[$wp_post->guid] = array(
    'ID' => $wp_post->ID, 
    'post_author' => $wp_post->post_author, 
    'post_date' => $wp_post->post_date, 
    'post_content' => $wp_post->post_content, 
    'post_title' => $wp_post->post_title, 
    'post_url' => $array[1][$wp_post->guid], 
    'blog_id' => $array[2][$wp_post->guid] 
); 
} 

UPDATE: Если вы хотите сохранить объект, то просто сделать это (при условии, что объект имеет свойства post_url и blog_id):

foreach ($array[0] as $wp_post){ 
    $wp_post->post_url = $array[1][$wp_post->guid]; 
    $wp_post->blog_id= $array[2][$wp_post->guid]; 
    $desired_array[$wp_post->guid] = $wp_post; 
} 
+0

Большое спасибо за ваш быстрый ответ! Ваше решение действительно работает! Однако он устраняет объект, который может быть полезен для моей задачи. Друг помог мне с этим и придумал это решение (см. Ниже). (Я бы поднял ваш ответ, но у меня пока нет достаточного количества репутации). – Pea

+0

Не беспокойтесь, но ваш желаемый результат показал, что вам нужен массив. Я уточню свой ответ. – luttkens

+0

Вы правы, я не был ясен. Ваше решение работает; он дает тот же результат, но намного меньше. Еще раз спасибо! – Pea

0

Друг помог мне с этим и пришел с этим решение.

$blog_posts = array(); 
foreach ($array[0] as $key => $value) { 
    foreach ($array[1] as $guid => $post_url) { 
     if ($value->guid == $guid) { 
      $value->post_url = $post_url; 
     } 
    } 
    foreach ($array[2] as $guid => $blog_id) { 
     if ($value->guid == $guid) { 
      $value->blog_id = $blog_id; 
     } 
    } 
    $blog_posts[$value->guid] = $value; 
} 
Смежные вопросы