删除没有指定名称的密钥
Remove keys without specified names
我有一个这样的数组:
Array
(
[44] => 2
[21] => 2
[] => 2
[27] => 2
)
如何查找和删除(取消设置)没有指定名称的密钥?所以在这种情况下数组应该是这样的:
Array
(
[44] => 2
[21] => 2
[27] => 2
)
可能是关键是 ''
(空字符串)
在这种情况下,假设您有
$myArray = [
[44] => 2,
[] => 2,
[21] => 2,
[27] => 2,
]
然后尝试取消设置
unset($myArray['']);
if (($key = array_search(null', $array)) !== false) {
unset($array[$key]);
}
我建议你阅读this thread
我认为最好的解决方案是最简单的:
$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;
它会自动给出第一个可用的数字键。
例如,如果您有:
$array[4]=5;
$array[]=6;
它会自动给出下一个空闲索引,意思是php这样:
$array[4]=5;
$array[5]=6;
希望对你有所帮助
我有一个这样的数组:
Array
(
[44] => 2
[21] => 2
[] => 2
[27] => 2
)
如何查找和删除(取消设置)没有指定名称的密钥?所以在这种情况下数组应该是这样的:
Array
(
[44] => 2
[21] => 2
[27] => 2
)
可能是关键是 ''
(空字符串)
在这种情况下,假设您有
$myArray = [
[44] => 2,
[] => 2,
[21] => 2,
[27] => 2,
]
然后尝试取消设置
unset($myArray['']);
if (($key = array_search(null', $array)) !== false) {
unset($array[$key]);
}
我建议你阅读this thread
我认为最好的解决方案是最简单的:
$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;
它会自动给出第一个可用的数字键。 例如,如果您有:
$array[4]=5;
$array[]=6;
它会自动给出下一个空闲索引,意思是php这样:
$array[4]=5;
$array[5]=6;
希望对你有所帮助