2

I have the following values:

$attached_products = "1,4,3";

I want to make an array that looks like:

$selected = array(1, 4, 3);

using a loop with my $attached_products.

3 Answers 3

7

This could be done with a loop, but there's a simpler way.

You can break your string up around the commas using the explode function[php docs]. This will give you an array of strings of digits. You can convert each string to an integer by applying intval[php docs] using array_map[php docs].

$attached_products = "1,4,3";
$selected_strings = explode(',', $attached_products); # == array('1', '4', '3')
$selected = array_map('intval', $selected_strings);   # == array(1, 4, 3)
Sign up to request clarification or add additional context in comments.

2 Comments

thanks for your response @Jeremy Banks, hmmm is that output equal to array(1, 4, 3)?
@Emkey: My values were strings, not integers. I've fixed that. Now they are the same.
4

You use explode() for that:

$selected = explode(", ", $attached_products);

Comments

2

If there may or may not be whitespace after the comma, you could use preg_split().

$selected = preg_split(/,\s*/, $attached_products);

Alternatively you could use explode(), trim() and array_map().

$selected = array_map('trim', explode(',', $attached_products));

If they must be integers, map them through intval().

Comments

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.