我有一个数组,我想从数组中删除第一个和第二个数组,因为状态
对于第一个和第二个数组为空。
输出应该是Array ([0]=> Array ([a] => 300000[B] => jill[状态]=>"东西"))
有什么想法吗?
array(
[0] => Array
(
[A] => 100000
[B] => jjohn
[status]=>
)
[1] => Array
(
[A] => 200000
[B] => jim
[status]=>
)
[2] => Array
(
[A] => 300000
[B] => jill
[status]=> "something"
)
)
$array = array_filter($array, function (array $i) { return $i['status']; });
此函数检查(bool)$item['status']
是否被求值为True,除非string '0'
.
功能:
function ($item) {
return isset($item['status']) && ($item['status'] || is_string($item['status']));
}
测试代码:
$array = array(
array(
'Name' => 'Empty String',
'status' => '',
),
array(
'Name' => 'String Zero',
'status' => '0',
),
array(
'Name' => 'Integer Zero',
'status' => 0,
),
array(
'Name' => 'Bool False',
'status' => false,
),
array(
'Name' => 'NULL',
'status' => null,
),
array(
'Name' => 'Undefined',
),
);
$array = array_values(array_filter($array, function ($item) {
return isset($item['status']) && ($item['status'] || is_string($item['status']));
}));
var_dump($array);
结果:
array(1) {
[0]=>
array(2) {
["Name"]=>
string(11) "String Zero"
["status"]=>
string(1) "0"
}
}