Как исключить пустой ключ из массива с помощью php?

При выполнении запроса в банке данных я могу получить оба массива в результате:

Array
(
[] => 401
[BETA] => 223
[GAMMA] => 195
[DELTA] => 189
)

Array
(
[ALFA] => 294
[BETA] => 223
[GAMMA] => 195
[DELTA] => 189
)

Что я могу сделать, чтобы исключить всю строку, когда ключ пуст?

Я пробовал что-то подобное, но безуспешно

foreach($array as $key => $value){
if(array_key_exists($key, $value) && is_null($value[$key])) {
unset($key);
}
$array = $value;
}

Спасибо заранее!

0

Решение

Поскольку ключ является пустой строкой, вы можете удалить этот конкретный ключ:

$test = array(''=>'test', 'test'=>'test');

unset($test['']);

print_r($test);

Или удалите все ключи, которые содержат только пробелы:

function array_remove_blank_keys($array) {

foreach ($array as $key => $value) {

if (preg_match('/^\s*$/', $key)) {
unset($array[$key]);
}

}

return $array;

}

$test = array(''=>'test', 'test'=>'test');

print_r($test);
print_r(array_remove_blank_keys($test));
0

Другие решения

Ключ не null, это пустая строка. например:

$foo = array(""=>"bar");
print_r($foo);

Выход:

Array
(
[] => bar
)

Так что вы хотели бы либо empty($key) или же $key == '' как ваш тест, разница в том, что empty() может соответствовать довольно многим вещам.

3

Использовать empty($var) функция для оценки. Он считает эти значения пустыми и возвращает true, если ему присваивается один:

null: нулевое значение,

'': пустой строки,

0: числовой ноль. Только если он не назначен прямым или косвенным присваиванием, таким как $ var = 0 или $ var = 1-1. Обратите внимание, что нулевая строка ('0') не пусто,

array(): пустой массив,

$var;: неназначенная переменная,

false: значение false,

' ': просто пробел

0

Ключи никогда не бывают пустыми. Они будут иметь числовой индекс.
Так что просто проверьте, является ли ключ числовым, а затем не установленным.

foreach($array as $key => $value){
if(is_numeric($key)) {
unset($key);
}

}

и вам не нужно делать $ array = $ value;

-2
По вопросам рекламы [email protected]