Как сделать массив из строки, используя цикл? - PullRequest
2 голосов
/ 14 сентября 2011

У меня есть следующие значения:

$attached_products = "1,4,3";

Я хочу создать массив, который будет выглядеть так:

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

используя цикл с моим $attached_products.

Ответы [ 3 ]

7 голосов
/ 14 сентября 2011

Это можно сделать с помощью цикла, но есть более простой способ.

Вы можете разбить строку вокруг запятых, используя функцию explode [ php docs ] .Это даст вам массив строк цифр.Вы можете преобразовать каждую строку в целое число, применив intval [ php docs ] , используя 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)
4 голосов
/ 14 сентября 2011

Для этого вы используете explode():

$selected = explode(", ", $attached_products);
2 голосов
/ 14 сентября 2011

Если после запятой может быть или не быть пробела, вы можете использовать preg_split().

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

В качестве альтернативы вы можете использовать explode(), trim() и array_map().

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

Если они должны быть целыми числами, отобразите их через intval().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...