我有以下数组:
$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的条目。
答案 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)