我有这个数组
[4] => Array
(
[label] => Politics
[value] => politics
)
[5] => Array
(
[label] =>
[value] =>
)
[6] => Array
(
[label] => Sports
[value] => sports
)
我想删除此块
[5] => Array
(
[label] =>
[value] =>
)
所以,我想要删除空数组键或值的过程。
感谢。
答案 0 :(得分:1)
$array = array(array('label' => "" ,'value' => ''),array('label' => 'test','value' => 'tset2'));
foreach($array as $key => $val)
{
if(empty($val['label']) || empty($val['value']) )
{
unset($array[$key]);
}
}
echo "<pre>";
print_r($array) ;
echo "</pre>";
我认为此代码可以帮助您
答案 1 :(得分:0)
可能您可以切片要删除的元素。请参阅链接:Delete an element from an array
答案 2 :(得分:0)
array_filter($your_table);
http://php.net/manual/pl/function.array-filter.php
我在使用数组
中的空值时遇到同样的问题时使用了这个答案 3 :(得分:0)
尝试使用此''
过滤器,
$new = array_filter($entry, function ($var) {
return ($var['label'] !== '' || $var['value'] !== '' );
});
print '<pre>';
print_r($new);
print '</pre>';
修改:null
过滤器
$new = array_filter($entry, function ($var) {
return ($var['label'] !== null || $var['value'] !== null );
});
print '<pre>';
print_r($new);
print '</pre>';
答案 4 :(得分:0)
您可以使用内置的array_filter()功能。
对于这个数组结构:
$arr = [
[
'label' => 'Politics',
'value' => 'politics'
],
[
'label' =>'',
'value' => ''
],
[
'label' => 'Sports',
'value' => 'sports'
],
];
此代码将删除任何没有标签或值的元素:
$arr = array_filter($arr, function ($e) {
return ($e['label'] || $e['value']);
});
答案 5 :(得分:0)
我建议做类似下面的伪代码
foreach (array_keys as key) {
if (empty(array[key][label])==true)
unset(array[key]);
}
答案 6 :(得分:0)
如果要删除所有具有null,empty或false值的子数组,可以将array_filter
与可调用array_filter
一起使用。
$data =
[
[
'foo' => null,
'bar' => 'big'
],
[
],
[
'baz' => 'fat',
'bat' => 'mama'
],
[
'man' => '',
'qux' => null,
'quux' => false
]
];
$data = array_filter($data, 'array_filter');
var_export($data);
输出:
array (
0 =>
array (
'foo' => NULL,
'bar' => 'big',
),
2 =>
array (
'baz' => 'fat',
'bat' => 'mama',
),
)
在没有回调的情况下使用array_filter将丢弃等于FALSE的元素。 ((bool) array()
是假的。)