Обновление и расширение мета-записи с помощью вложенного массива и количества - PullRequest
0 голосов
/ 08 октября 2019

Я использую код PHP ниже для обновления мета поста. Моя цель состоит в расширении текущей мета-записи новым массивом. Проблема состоит в том, что я получаю много вложенных массивов, которые остаются в [0]. Он должен продолжить подсчет массивов.

Мой PHP-код:

$my_array =   // This changes every time
   array(
   'name' => 'Name 3',
   'amount' => '30',
   'date' => '2019-09-28',
   'message' => 'Test 3',);

$get_post_meta = get_post_meta('33300', 'test_post_meta');

$combine_arrays = $get_post_meta + $my_array;

update_post_meta('33300', 'test_post_meta', $combine_arrays);

Пост-мета вывод таков:

array ( // The arrays are all nested
  0 => 
  array (
    0 => 
    array (
      0 => 
      array (
        'name' => 'Name 1',
        'amount' => '10',
        'date' => '2019-09-26',
        'message' => 'Test 1',
      ),
      'name' => 'Name 2',
      'amount' => '20',
      'date' => '2019-09-27',
      'message' => 'Test 2',
    ),
    'name' => 'Name 3',
    'amount' => '30',
    'date' => '2019-09-28',
    'message' => 'Test 3',
  ),
)

Хотя должно быть , например:

array ( // It should look like this and count
  0 => 
      array (
        'name' => 'Name 1',
        'amount' => '10',
        'date' => '2019-09-26',
        'message' => 'Test 1',
      ),
  1 => 
    array (
      'name' => 'Name 2',
      'amount' => '20',
      'date' => '2019-09-27',
      'message' => 'Test 2',
    ),
 2 => 
  array (
    'name' => 'Name 3',
    'amount' => '30',
    'date' => '2019-09-28',
    'message' => 'Test 3',
  ),
)

Есть идеи, как это решить? Подсчет массивов должен идти автоматически.

1 Ответ

0 голосов
/ 08 октября 2019

Хорошо, я сам это выяснил. Проблема заключалась в том, что мне пришлось объединиться на уровне [0].

Это решение :

$array = array (
    'test' => // This will change every time
    array (
      0 => 'Value 0',
      1 => 'Value 1',
      2 => 'Value 2',
      3 => 'Value 3',
    ),
  );

  $get_post_meta = get_post_meta('33300', 'test_post_meta');
  $result = array_merge($get_post_meta[0], $array); // Merge on the [0] level.

  update_metadata( 'post', '33300', 'test_post_meta', $result); // Update merged array
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...