PHP数组:索引与键控

时间:2011-05-23 19:47:49

标签: php arrays indexing associative-array

我有一个方法fetch_widgets,它从(MySQL)数据库中获取小部件。我传递了$options数组,因此我可以有选择地添加WHEREJOIN子句,添加/删除列等。

例如:

    $options = array();
    $options[] = 'include_disabled';
    $options[] = 'include_tag_ids';
    $options['start_date'] = '2011-01-01';
    $options['end_date'] = '2011-01-31';

fetch_widgets中,我使用以下任一方法检查选项:

    if(array_key_exists('start_date',$options)) { ... }

或:

    if(in_array('include_tag_ids',$options)) { ... }

取决于该选项是否被激活只是存在(例如include_disabled)或具有键和值(例如end_date)。

我遇到了困难,因为当in_array数组包含键控和非键控值时,$options会得到奇怪的结果。任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:5)

如果您需要一致的行为,请不要混合/匹配键控和非键控数组。

相反,做这样的事情:

$options = array();
$options['include_disabled'] = true;
$options['include_tag_ids'] = true;
$options['start_date'] = '2011-01-01';
$options['end_date'] = '2011-01-31';