Php 删除没有指定名称的键

Php 删除没有指定名称的键,php,arrays,unset,Php,Arrays,Unset,我有这样一个数组: Array ( [44] => 2 [21] => 2 [] => 2 [27] => 2 ) Array ( [44] => 2 [21] => 2 [27] => 2 ) $array[4]=5; $array[5]=6; 如何查找和删除(取消设置)没有指定名称的键?因此,在本例中,数组应如下所示: Array ( [44] => 2 [21]

我有这样一个数组:

Array
(
    [44] => 2
    [21] => 2
    [] => 2
    [27] => 2
)
Array
(
    [44] => 2
    [21] => 2
    [27] => 2
)
 $array[4]=5;
 $array[5]=6;
如何查找和删除(取消设置)没有指定名称的键?因此,在本例中,数组应如下所示:

Array
(
    [44] => 2
    [21] => 2
    [] => 2
    [27] => 2
)
Array
(
    [44] => 2
    [21] => 2
    [27] => 2
)
 $array[4]=5;
 $array[5]=6;
可能是键是
(空字符串)

在这种情况下,假设你有

   $myArray = [
    [44] => 2,
    []   => 2,
    [21] => 2,
    [27] => 2,
   ]
然后尝试取消设置

 unset($myArray['']);

我建议您阅读

我认为最好的解决方案是最简单的:

$array = [
44 => 2,
21 => 2,
'' => 2,
27 => 2
];

$results = [];

foreach ($array as $k => $a) {
    if (!empty($k)) {
        $results[$k] = $a;
    }
}

var_dump($results);
您可以尝试以下方法:

$arrayWithoutNullKeyMembers = array_filter($arrayWithNullKeyMembers,
                        function($key){ return !empty($key); }, ARRAY_FILTER_USE_KEY);

似乎您有一个数组(键值) 在这种类型的数组中,我们有一个键,不可能有一个没有键的单元格。 正如你在问题中提到的,似乎没有任何键的单元格已经有了“”(空字符串)键。我的意思是它的定义是这样的

$array['']=2;
unset( $array['']);
因此,您可以简单地将其设置为正常。像这样

$array['']=2;
unset( $array['']);
因为如果将单元格定义为以下内容:

 $array[]=2;
它会自动给出第一个可用的数字键。 例如,如果您有:

 $array[4]=5;
 $array[]=6;
它会自动给出下一个自由索引,这对php的意义如下:

Array
(
    [44] => 2
    [21] => 2
    [] => 2
    [27] => 2
)
Array
(
    [44] => 2
    [21] => 2
    [27] => 2
)
 $array[4]=5;
 $array[5]=6;

我希望它能帮助您。

如何为数组添加值?所有密钥都必须为name。如果将值添加为$array[]=2,则key将是计数的下一个key,或0。该key只是
'
否?创建一个新数组,在第一个数组上执行foreach,如果键不为空,则在新数组上添加值…可能有一个php数组函数,但不知道它。你是如何得到这个值的?可以有多个空键吗?@Evgeniy Belov我不创建此数组-这是我从外部源获得的信息:/php数组的可能副本不能有多个具有相同键的元素。只需要一个
unset()