Без вы фактически выполняете зацикленную часть, что-то на основе array_map
+ explode
должно сработать; например, учитывая, что вы используете PHP 5.3:
$str = "A,5|B,3|C,8";
$a = array_map(
function ($substr) {
return explode(',', $substr);
},
explode('|', $str)
);
var_dump($a);
Получит вас:
array
0 =>
array
0 => string 'A' (length=1)
1 => string '5' (length=1)
1 =>
array
0 => string 'B' (length=1)
1 => string '3' (length=1)
2 =>
array
0 => string 'C' (length=1)
1 => string '8' (length=1)
Конечно, эта часть кода может быть переписана так, чтобы не использовать лямбда-функцию и работать с PHP <5.3 - но не так весело ^^ </p>
Тем не менее, я предполагаю, что array_map
будет перебирать каждый элемент массива, возвращаемый explode
... Таким образом, даже если цикл отсутствует в вашем коде, он все равно будет один ...