PHP array_column для возврата только со значениями - PullRequest
0 голосов
/ 05 августа 2020

Можно ли получить результат из array_column, который имеет только значения?

образец массива, который я хочу использовать array_column

$array = [
   ['name' => ''],
   ['name' => 'John'],
   ['name' => 'Doe']
]

, когда я использую array_column, это то, что я получаю

Array
(
    [0] => 
    [1] => John
    [2] => Doe
)

Я собирался просто использовать foreach и проверять каждое значение, но мне было интересно, есть ли более простой способ сделать это

спасибо

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Вы также можете сделать это, чтобы удалить как пустые, так и пустые значения:

// PHP 7.4+
$result = array_filter(array_column($array, 'name'), fn($val) => !is_null($val) && $val !== '');

// PHP 5.3 and later
$result = array_filter(array_column($array, 'name'), function($val) { return !is_null($val) && $val !== ''; });
0 голосов
/ 05 августа 2020

Я думаю, вам нужно что-то вроде этого (чтобы получить только столбцы, у которых есть значение):

$array = [
    ['name' => ''],
    ['name' => 'John'],
    ['name' => 'Doe']
];

$result = array_filter(array_column($array, 'name'));

array_filter отфильтрует пустые имена, и вы получите что-то вот так:

// print_r($result);

Array
(
    [1] => John
    [2] => Doe
)

Кроме того, если вам нужно изменить порядок индексов, вы можете использовать array_values ​​ следующим образом:

$result = array_filter(array_column($array, 'name'));

// If you want to reorder the indices
$result = array_values($result);

// print_r($result);

Array
(
    [0] => John
    [1] => Doe
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...