(PHP) как проще преобразовать строку в многомерный массив?

GetAnswer
Дата: 09.07.2006 19:52:33
Как можно без конструкции "foreach" преобразовать строку типа:
"a=>a1,b=>b1,c=>c1" в массив:
Array
(
[0] => Array
(
[0] => a
[1] => a1
)

[1] => Array
(
[0] => b
[1] => b1
)

[2] => Array
(
[0] => c
[1] => c1
)

)

Просто мне кажется что можно сделать без "foreach", очень мне уж не нравится конструкция foreach, из за её использования всегда создаются 2 лишние переменный, в этом примере это $tmp и $new_a.

$a = "a=>a1,b=>b1,c=>c1";
$a = explode(',', $a);
foreach($a as $tmp) {
$new_a[] = explode('=>', $tmp);
}
GetAnswer
Дата: 09.07.2006 19:56:09
Можно ещё так:

$a = "a=>a1,b=>b1,c=>c1";
$a = explode(',', $a);
for($i = 0; $i < count($a); $i++) {
    $a[$i] = explode('=>', $a[$i]);
}

Как ещё можно без циклов, что то вроде конструкции array_map(), только при помощи неё не получается((((
Robert Tappan Moris
Дата: 10.07.2006 14:06:11
$a = "a=>a1,b=>b1,c=>c1";

// проход по массиву и 2-е разбиение
array_walk(
	// 1-е разбиение
	$res = explode(',',$a),
	// ф-я для 2-го разбиениея
	create_function('&$arr','$arr=explode("=>",$arr);')
);

// вывод
print_r($res);

Но дело в то, что такая кострукция работает дольше. И даже с увеличением строки разница в скорости уменьшается, но не значительно.

Сравнение 3-х методов по времени работы: http://ludi-i-kuhni.ru/sql/test.php.