我的代码中有这样的一行:
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user);
最后3个参数可能存在也可能不存在。是否存在类似于list的函数,如果数组小于预期,它将自动忽略那些最后的参数?
答案 0 :(得分:32)
list($user_id, $name, $limit, $remaining, $reset)
= array_pad(explode('|', $user), 5, null);
答案 1 :(得分:8)
如果您担心SDC的解决方案感觉“hacky”;然后你可以设置一些默认值并使用:
$user = '3|username';
$defaults = array(NULL, NULL, 10, 5, FALSE);
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user) + $defaults;
var_dump($user_id, $name, $limit, $remaining, $reset);
答案 2 :(得分:6)
只需在字符串的末尾添加一些备用管道:
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user.'||||');
问题解决了。
注意:如果您正在加载任意竖线分隔数据,则可能需要使用str_getcsv()
函数而不是explode()
。