多维数组根据条件删除内部数组键

时间:2013-05-17 10:19:07

标签: php

我有一个数组,我想从状态

中删除数组中的第一个和第二个数组 对于第一个和第二个数组,

为空。

输出应该是 数组([0] =>数组(                 [A] => 300000                 [B] =>吉尔         [状态] => “东西”     )     )

还有什么想法要继续吗?

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

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

2 个答案:

答案 0 :(得分:3)

$array = array_filter($array, function (array $i) { return $i['status']; });

答案 1 :(得分:0)

此功能会检查(bool)$item['status']是否被评估为 True ,除外 字符串'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"
  }
}