PHP 数组:索引数组与键控数组
我有一个方法,fetch_widgets
,可以从(MySQL)数据库获取小部件。我向它传递一个 $options
数组,这样我就可以有选择地添加 WHERE
和 JOIN
子句、添加/删除列等。
例如:
$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
)或具有键和值(例如 <代码>结束日期)。
我遇到了困难,因为当 $options
数组包含键控值和非键控值时,我从 in_array
得到奇怪的结果。任何人都可以阐明这一点吗?
I have a method, fetch_widgets
, that fetches widgets from the (MySQL) database. I pass it an $options
array so I can selectively add WHERE
and JOIN
clauses, add/remove columns etc.
For example:
$options = array();
$options[] = 'include_disabled';
$options[] = 'include_tag_ids';
$options['start_date'] = '2011-01-01';
$options['end_date'] = '2011-01-31';
In fetch_widgets
I check for the options using either:
if(array_key_exists('start_date',$options)) { ... }
or:
if(in_array('include_tag_ids',$options)) { ... }
depending on whether or not the option is activated just be being present (e.g. include_disabled
) or has a key and a value (e.g. end_date
).
I'm running into difficulties because I'm getting strange results from in_array
when the $options
array contains keyed and non-keyed values. Can anyone shed any light on this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您需要一致的行为,请勿混合/匹配键控和非键控数组。
相反,做这样的事情:
Don't mix/match keyed and non-keyed arrays if you need consistent behavior.
Instead, do something like this: