php最简单的制作阵列的方法

时间:2012-11-26 17:26:37

标签: php arrays

我有这种格式的mysql字符串

  

1.name.2.name,3.name.8.name

我有这个

  

$ ARR =分裂( “”,$ STR); $计数=计数($ ARR);

这将生成2个数组,但我想将其逐项列出

for ($i=0;$i<$count;$i++){
echo $arr[$i];
// when $i=0 here must be 1 name 2 name and when $i=1 3 name 8 name
}

这仍然是正确的,但现在我想要来自$arr[$i]的内部循环写入值,我需要将它们拆分为dott。有可能吗?

3 个答案:

答案 0 :(得分:3)

您不需要任何循环

$string = "1.name.2.name,3.name.8.name";
$array = explode(",", $string);
var_dump($array);

输出

array (size=2)
  0 => string '1.name.2.name' (length=13)
  1 => string '3.name.8.name' (length=13)

如果你想进一步打破它

$array = array_map(function($v){return explode(".", $v); },$array);
var_dump($array);

输出

array (size=2)
  0 => 
    array (size=4)
      0 => string '1' (length=1)
      1 => string 'name' (length=4)
      2 => string '2' (length=1)
      3 => string 'name' (length=4)
  1 => 
    array (size=4)
      0 => string '3' (length=1)
      1 => string 'name' (length=4)
      2 => string '8' (length=1)
      3 => string 'name' (length=4)

答案 1 :(得分:0)

使用explode(),str_replace()进行拆分,以移除.

$string = "1.name.2.name,3.name.8.name";
$arr = explode(",", $string);

for ($i=0;$i<count($arr);$i++){
echo str_replace("."," ",$arr[$i]);}

答案 2 :(得分:0)

使用正则表达式替代:

$string = "1.name.2.name,3.name.8.name";

preg_match_all('|(\d+)\.([^.,]+)[,.]?|', $string, $matches);
$matches = array_combine($matches[1], $matches[2]);

print_r($matches);

输出:

Array
(
    [1] => name
    [2] => name
    [3] => name
    [8] => name
)