Nasıl döngüler olmadan PHP çok boyutlu bir diziye bir dize bölmek mi?
Benim dize formatında "A,5|B,3|C,8"
you aslında döngü kısmını dayalı bir şey yapmadan array_map
+ explode
a> hile yapmak gerekir; Örneğin, PHP 5.3 kullanıyorsanız düşünüyor:
$str = "A,5|B,3|C,8";
$a = array_map(
function ($substr) {
return explode(',', $substr);
},
explode('|', $str)
);
var_dump($a);
Alacak:
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)
Tabii ki, bu kod kısmı lambda-işlevini kullanın ve PHP <çalışmak değil yeniden yazılmış olabilir 5.3 - ama eğlenceli ^ ^
Still, I presume array_map
will loop over each element of the array returned by explode
... So, even if the loop is not in your code, there will still be one...
Olmadığını array_walk bağlı olarak () bir döngü olarak sayar ...
<?php
class Splitter {
function __construct($text){
$this->items = array();
array_walk(explode('|', $text), array($this, 'split'));
}
function split($input){
$this->items[] = explode(',', $input);
}
}
$s = new Splitter("A,5|B,3|C,8");
print_r($s->items);