Emkey
Emkey

Reputation: 5356

How to make an array from a string using a loop?

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.

Upvotes: 2

Views: 185

Answers (3)

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)

Upvotes: 7

alex
alex

Reputation: 490283

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().

Upvotes: 2

Rolando Cruz
Rolando Cruz

Reputation: 2784

You use explode() for that:

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

Upvotes: 4

Related Questions