Array_column a array_map возврат - PullRequest
       1

Array_column a array_map возврат

1 голос
/ 12 ноября 2019

У меня есть это array_map:

    /* Return an array of _octopus_ids */
    $offices = array_map(
        function($post) {
            return array(
                'id' => get_post_meta($post->ID, '_octopus_id', true),
            );
        },
        $query->posts
    );

, которое возвращает следующее:

array (size=10)
  0 => 
    array (size=1)
      'id' => string '1382' (length=4)
  1 => 
    array (size=1)
      'id' => string '1330' (length=4)

Как я могу взорвать это утверждение, чтобы я мог получить только строки?

Я пробовал следующее:

    $test = implode(', ', $offices);
    var_dump($test);

var_dump ($ test) возвращает следующее: Array, Array, Array, Array, Array, Array, Array, Array, Array, Array.

Я получаю ошибку Array to string conversion - Что я делаю неправильно? Я хотел бы просто распечатать 1382, а затем 1330

Ответы [ 2 ]

2 голосов
/ 12 ноября 2019
/* Return an array of _octopus_ids */
    $offices = array_map(
        function($post) {
            return get_post_meta($post->ID, '_octopus_id', true)
        },
        $query->posts
    );

    print_r($offices);

    //or

    $officesStr = implode(', ', $offices);
    echo $officesStr;

$useLaterArr = [];
foreach ($offices as $office) {
    $useLaterArr = ['id' => $office];
}

echo "For later use :)\n";
print_r($useLaterArr);

$another = ['id' => $offices];
echo "Another way:\n";
print_r($offices);
1 голос
/ 12 ноября 2019

Вы можете использовать array_column () , чтобы получить массив всех id

$offices = [
    ['id' => 1382],
    ['id' => 1330]
];

echo implode(', ', array_column($offices, 'id'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...