使用特定数组元素处理数组值


Handling array values using specific array element

我有一个像这样的数组值。我尝试了array_search,它没有用。我想要的就是只过滤具有状态值的数组值。

<标题> 输出
    Array
    (
    [1] => Array
    (
    [author] => Author1
    [book] => Book1
    [status] => 1
    )
    [2] => Array
    (
    [author] => Author2
    [book] => Book2
    )
    [3] => Array
    (
    [author] => Author3
    [book] => Book3
    [status] => 1
    )
    )
<标题>预期输出
Array
    (
    [1] => Array
    (
    [author] => Author1
    [book] => Book1
    [status] => 1
    )
    [3] => Array
    (
    [author] => Author3
    [book] => Book3
    [status] => 1
    )
    )

如果期望的输出具有正确的数字序列,我会更高兴。在上面的例子中,有两个数组,数组号分别为[1]和[3]。如果可能的话,我需要将其设置为[1]和[2]。

任何帮助都会很有用。

谢谢,Kimz

你可以这样做

foreach($my_array as $arr) {
    if(isset($arr['status']) && $arr['status'] != '') {
        $temp_array[] = $arr;
    }
}
print_r($temp_array);

可以使用array_filter

$array = array(['status' => 1], [], ['status' => 1]);
$result = array_filter($array, function($item)
    {
    return !empty($item['status']);
    });
var_dump($result);