检查是否已设置所有数组元素

时间:2011-07-08 02:45:26

标签: php arrays

我有以下数组:

$my_array = array ( 
                 'city'     => $this->input->post('city'),
                 'country'  => $this->input->post('country'),
                 'state'    => $this->input->post('state'),
                 'miles'    => $this->input->post('miles')
                 );

我可以使用哪个简短 php函数或方法来检查是否已设置所有数组项?现在我正在使用以下代码

$my_array = array_filter($my_array);

if (!empty($my_array['city']) && !empty($my_array[['miles']) && !empty($my_array[['state']) && !empty($my_array['country']))
{
     //do something
}

注意:我正在使用array_filter()函数从查询中删除所有等于FALSE的条目。

4 个答案:

答案 0 :(得分:3)

似乎你可以count过滤后留下的元素数量:

if(count($my_array) == 4){
    // all 4 still set
}

答案 1 :(得分:2)

一般来说,你可以这样做:

$required = array_flip(array('city', 'country', 'state', 'miles'));
if (array_diff_key($required, $my_array)) {
    // not all keys are set
}

在这种特殊情况下,计算结果数组确实应该足够了。

答案 2 :(得分:1)

那样的话?我只是测试count(array_values($my_array)) == 4

答案 3 :(得分:1)

试试这个:

function testArray($array) { 
 for($x = 0,$len = count($array); $x < $len; $x++) {
     if(empty($array[$x])) {
          return false; 
      }
  }
         return true; 
}

短功能:

count(array_map('empty', $array)) == count($array)