PHP - 在list()参数中将字符串转换为int?

时间:2016-06-24 18:49:43

标签: php casting

我正在改进我的代码,我有几个地方需要将字符串转换为整数,但list()函数的限制阻止我使用list()。具体例子:

$x = '12-31-2010';

$explode = explode("-", $x);

// Need to do the following because e.g. echo gettype($explode[0]) ---> string

$month = (int)$explode[0];
$day   = (int)$explode[1];
$year  = (int)$explode[2];

我想做的事情(但是会有致命错误)让事情变得更加整洁:

list((int)$month, (int)$day, (int)$year) = explode("-", $x); // I want echo(gettype) ---> integer for each variable

有没有办法做到这一点,或者我能做到以下几点是最好的?

list($month, $day, $year) = explode("-", $x);

$month = (int)$month;
$day   = (int)$day;
$year  = (int)$year;

2 个答案:

答案 0 :(得分:8)

通过这个参考: -

how to convert array values from string to int?

你可以这样做: -

list($month, $day, $year) = array_map('intval', explode('-', $x));

答案 1 :(得分:1)

如果您需要为数组中的每个元素使用相同的类型,则可以在将数组分配给list(...)之前将数组传递到array_map

$x = '12-31-2010';

list($month, $day, $year) = array_map('intval', explode("-", $x));