-1

我有一个数组,我想从数组中删除第一个和第二个数组,因为状态

第一个和第二个数组为空白。

输出应该是 array([0]=> array ( [A] => 300000 [B] => jill [status]=> "something" ) )

有什么想法可以继续吗?

array(
        [0] => Array
        (
            [A] => 100000
            [B] => jjohn
    [status]=>
)

[1] => Array
        (
            [A] => 200000
            [B] => jim
    [status]=>
)
[2] => Array
        (
            [A] => 300000
            [B] => jill
    [status]=> "something"
)
)
4

2 回答 2

3
$array = array_filter($array, function (array $i) { return $i['status']; });
于 2013-05-17T10:20:21.997 回答
0

此函数检查是否(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"
  }
}
于 2013-05-17T10:36:57.960 回答