19

What would be the most simple way to convert an integer to an array of numbers?

Example:

2468 should result in array(2,4,6,8).

4 Answers 4

56

You can use str_split and intval:

$number = 2468;

    $array  = array_map('intval', str_split($number));

var_dump($array);

Which will give the following output:

array(4) {
  [0] => int(2)
  [1] => int(4)
  [2] => int(6)
  [3] => int(8)
}

Demo

Sign up to request clarification or add additional context in comments.

2 Comments

Ya. Just convert the int value to a string and split it.
str_split does convert to string already. However the output wasn't an array of integers,, so this needed actually some conversion.
8

use str_split() function

$array = str_split($str);

http://php.net/manual/en/function.str-split.php

Comments

7

You can cut-off the last digit by taking the number modulo 10.

Don't tell it to anyone!

do 
{
    $array.add(num % 10);
    num = num / 10;
}
while (num != 0);

1 Comment

Wait, wha...? Don't tell it to anyone? Why?
0

Example #2 Splitting a string into component characters

$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

1 Comment

str_split() from the other answeres would perform much better (i'll guess).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.