PHP检查Array是否为空

时间:2013-05-07 05:31:31

标签: php arrays

我有一个多维数组如下

Array
(
    [0] => Array
        (
            [featured] => Yes
            [job_code] => WT3
            [title] => Senior Test Engineer - dB Testing
            [no_of_pos] => 5
            [experience] => 3 to 5 years
            [job_desc] => Work with Dev counterparts to understand the implementation details.
Adhere to all quality standards from QA perspective.
Able to independently come up with test cases based on the analysis of functionality.
Test planning and Test Design (Creation of Test scenarios/Test Cases)
Preparation of Test environment
Execution of Test cases
Identification, reporting and tracking of defects
            [skillsets] => Should be experienced in testing on Mac OS X
Should be familiar with terms such as plist, starutp options on Mac, OS versions
Should be familiar with Terminal and Console on Mac OS X
Should be familiar with Apple Script Editor or Automator
Should be able to troubleshoot basic boot issues on Mac
            [keywords] => Black Box testing, Web Testing, e-Commerce, SQL queries/database testing
        )

    [1] => Array
        (
            [featured] => No
            [job_code] => MNX-7A
            [title] => Test Engineer - Mac OS X
            [no_of_pos] => 1
            [experience] => 3 to 5 years
            [job_desc] => Should be excellent in Black Box Test Case Design
Should be able to understand business requirements and develop relevant scenarios and test cases 
Good knowledge on the SDLC / STLC
Preparation of Test environment
Execution of Test cases
Identification, reporting and tracking of defects
            [skillsets] => Should be experienced in testing on Mac OS X
Should be familiar with terms such as plist, starutp options on Mac, OS versions
Should be familiar with Terminal and Console on Mac OS X
Should be familiar with Apple Script Editor or Automator
Should be able to troubleshoot basic boot issues on Mac
            [keywords] => Black Box Testing, Mac OS X
        )

)

我希望通过数组进行迭代,并确保所有字段都有值而不是空。

哪种方法最好?

3 个答案:

答案 0 :(得分:1)

请试试这个:

<?php

$data=array
(
    0 => array
        (
            'featured' => 'Yes',
            'job_code' => 'WT3',
            'title' => 'Senior Test Engineer - dB Testing',
            'no_of_pos' => '5',
            'experience' => '3 to 5 years',
            'job_desc' => 'Work with Dev counterparts to understand the implementation details.
Adhere to all quality standards from QA perspective.
Able to independently come up with test cases based on the analysis of functionality.
Test planning and Test Design (Creation of Test scenarios/Test Cases)
Preparation of Test environment
Execution of Test cases
Identification, reporting and tracking of defects
            [skillsets] => Should be experienced in testing on Mac OS X
Should be familiar with terms such as plist, starutp options on Mac, OS versions
Should be familiar with Terminal and Console on Mac OS X
Should be familiar with Apple Script Editor or Automator
Should be able to troubleshoot basic boot issues on Mac',
            'keywords' => 'Black Box testing, Web Testing, e-Commerce, SQL queries/database testing'
        ),

    1 => array
        (
            'featured' => 'No',
            'job_code' => 'MNX-7A',
            'title' => 'Test Engineer - Mac OS X',
            'no_of_pos' => '1',
            'experience' => '3 to 5 years',
            'job_desc' => 'Should be excellent in Black Box Test Case Design
Should be able to understand business requirements and develop relevant scenarios and test cases 
Good knowledge on the SDLC / STLC
Preparation of Test environment
Execution of Test cases
Identification, reporting and tracking of defects',
            'skillsets' => 'Should be experienced in testing on Mac OS X
Should be familiar with terms such as plist, starutp options on Mac, OS versions
Should be familiar with Terminal and Console on Mac OS X
Should be familiar with Apple Script Editor or Automator
Should be able to troubleshoot basic boot issues on Mac',
            'keywords' => 'Black Box Testing, Mac OS X'
        )

);

function anyEmpty($array) {
    foreach ($array as $arr) {
        if (!is_array($arr)) {
            if (empty($arr)) {
                return true;
            }
        } else {
            if (anyEmpty($arr)) {
                return true;
            }
        }
    }
    return false;
}

var_dump(anyEmpty($data));

?>

在此示例中,所有字段都已设置,因此它将回显bool(false)。但是,如果我将其中一个字段更改为'',它将返回true。

示例:

<?php

$data=array
(
    0=>array(
        0=>"hello",
        1=>array(
            0=>"world"
        ),
        2=>array(
            0=>"my name",
            array(
                0=>""
            )
        )
    )
);

function anyEmpty($array) {
    foreach ($array as $arr) {
        if (!is_array($arr)) {
            if (empty($arr)) {
                return true;
            }
        } else {
            if (anyEmpty($arr)) {
                return true;
            }
        }
    }
    return false;
}

var_dump(anyEmpty($data));

?>

现在返回bool(true)

答案 1 :(得分:1)

我认为简单的循环总是更快。

function yourFunction($array, $key, $val) {
    foreach ($array as $item)
        if (isset($item[$key])
          // do what you intend to here
}

答案 2 :(得分:1)

您可以使用下面的一个。它引用了php.net here

function is_multiArrayEmpty($multiarray) { 
        if(is_array($multiarray) and !empty($multiarray)){ 
            $tmp = array_shift($multiarray); 
                if(!is_multiArrayEmpty($multiarray) or !is_multiArrayEmpty($tmp)){ 
                    return false; 
                } 
                return true; 
        } 
        if(empty($multiarray)){ 
            return true; 
        } 
        return false; 
    }
相关问题