2015-07-03 13 views
0

У меня есть вложенный массив данных, который ниже, из таблицы базы данных записей форм Wordpress Formidable Pro. Я хотел бы переформатировать его, чтобы использовать его в Wordpress WP_list_table, но я не могу решить, как изменить самый внутренний вложенный массив. Мне нужно каждый ряд должен быть отформатирован как 'product_id' => '4080',Изменение данных внутри вложенного массива

  Array (
       [30] => Array (
        [user_id] => 2 
        [product_id] => 4080 
       ) 
       [31] => Array (
        [user_id] => 5 
        [product_id] => 2942 
       ) 
       [32] => Array (
        [user_id] => 4 
        [product_id] => 9630 
       ) 
       [33] => Array (
        [user_id] => 3 
        [product_id] => 2542 
       ) 
       [34] => Array (
        [user_id] => 7 
        [product_id] => 1234 
       ) 
      ) 

код, который используется для создания массива:

  global $wpdb; 

      //Retrieve the bids from the database.  
      $form_entries = $wpdb->get_results('SELECT * FROM '. $wpdb->prefix .'frm_item_metas WHERE field_id in (145,147)'); 

      $data = array(); 

      foreach ($form_entries as $meta) { 

       if (! isset($data[$meta->item_id])){ 

        $data[$meta->item_id] = array(); 

       } 

       $data[$meta->item_id][] = $meta->meta_value; 

      } 

      //rename the array keys 
      foreach($data as &$new_values) { 
       $new_values['user_id'] = $new_values[0]; unset($new_values[0]); 
       $new_values['product_id'] = $new_values[1]; unset($new_values[1]); 
      } 
      unset($new_values); 

     } 

Я пытался возиться с strReplace и взрываться(), но я не знаю, что Я делаю. Я был бы признателен, если бы кто-нибудь мог помочь.

Edit: Желаемая массив:

  Array (
       [30] => Array (
        'user_id' => '2', 
        'product_id' => '4080', 
       ) 
       [31] => Array (
        'user_id' => '5', 
        'product_id' => '2942', 
       )... 
+0

Неясно, что вы хотите, можете ли вы изменить свой вопрос с помощью нужного массива? – Mihai

ответ

0

Там нет квадратных скобок в массиве, то есть просто как print_r метки ключей в массиве. Насколько я могу судить, массив находится в нужном вам формате.

Для лучшего понимания проблемы ... Я создаю массив.

$test = array(
    30 => array('user_id' => '2', 'item_id' => '4080'), 
    31 => array('user_id' => '5', 'item_id' => '2942'), 
); 

Это то, что print_r($test) делает его выглядеть следующим образом:

Array 
(
    [30] => Array 
     (
      [user_id] => 2 
      [item_id] => 4080 
     ) 

    [31] => Array 
     (
      [user_id] => 5 
      [item_id] => 2942 
     ) 

) 

Это то, что var_export ($ тест) делает его выглядеть следующим образом:

array (
    30 => 
    array (
    'user_id' => '2', 
    'item_id' => '4080', 
), 
    31 => 
    array (
    'user_id' => '5', 
    'item_id' => '2942', 
), 
) 

Это то, что var_dump ($ тест) делает это следующим образом:

array(2) { 
    [30]=> 
    array(2) { 
    ["user_id"]=> 
    string(1) "2" 
    ["item_id"]=> 
    string(4) "4080" 
    } 
    [31]=> 
    array(2) { 
    ["user_id"]=> 
    string(1) "5" 
    ["item_id"]=> 
    string(4) "2942" 
    } 
} 

Массив - это структура данных, которая присваивает значения ключам; это не строка, которую вы видите при ее запуске через функцию, отображающую представление этой структуры.

+0

Спасибо Анке за это. Это означает, что проблемы, которые у меня возникают, должны быть связаны с чем-то другим. – theflyingant