Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php制作数组的最简单方法_Php_Arrays - Fatal编程技术网

php制作数组的最简单方法

php制作数组的最简单方法,php,arrays,Php,Arrays,我从mysql中得到了这种格式的字符串 1.姓名2.姓名3.姓名8.姓名 我有这个 $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 } 对于($i=0;$i您不需要任何循环 $string = "1.name.2.name,

我从mysql中得到了这种格式的字符串

1.姓名2.姓名3.姓名8.姓名

我有这个

$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
}

对于($i=0;$i您不需要任何循环

$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 (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)
如果你想进一步打破它

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

array (size=2)
  0 => string '1.name.2.name' (length=13)
  1 => string '3.name.8.name' (length=13)
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)
用于按
拆分,并删除

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

for ($i=0;$i<count($arr);$i++){
echo str_replace("."," ",$arr[$i]);}
$string=“1.name.2.name,3.name.8.name”;
$arr=分解(“,”,$string);

对于使用正则表达式的($i=0;$i备选方案:

$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
)

+1过了很长时间。我真的没有收到OP问题,但我需要用dott-tooyes分解这2个数组,这也是个好主意,但对于我的情况,我必须使用2x-explode,不仅是1,还要感谢:)和
explode()
stru-replace()
,即使您的
$string
增加了1.name.2.name,3.name.8.name,10.name.11.name,12.name.13.name,16.name.17.name
或每个部分的
数量-
1.name.2.name.3.name.4.name,7.name.8.name.9.name.11.name