编辑:这是以下部分$preparedstring:
555555,Jones,Brian,NYC,1000,2011-10-21 00:00:00,Check,1542,0 ,, Check ,, 0 ,, Check ,,; 6666666,Miler,Christopher,Chicago,1000,2011-10-26 00:00:00,Check,6406,0 ,, Check ,, 0 ,, Check ,,;
我试图将HTML表转换为多维数组.我已将表转换为长字符串,每个单元格用逗号分隔,每行用分号分隔.
我不确定如何从这个字符串构建多维数组.这是我到目前为止所尝试的:
<?php
$outerARR = explode(";", $preparedstring);
$arr = array
(
foreach ($outerARR as $arrvalue) {
$innerarr = explode(",", $arrvalue);
$innerarr[0]=>array
(
$innerarr[];
)
}
);
?>
Run Code Online (Sandbox Code Playgroud)
这给了我附近的语法错误
$ arr = array
(
左括号.
你解决这个问题的方法是非常错误的,虽然你的问题有很多解决方案,我会使用类似下面的内容.
代码如何工作?
首先我们使用explode将我们的字符串拆分成较小的块,;是我们的分隔符.
我们将这个新创建的数组传递给array_map,因为它是第二个参数.
array_map有两个参数,第一个是为第二个参数的每个成员调用的函数(应该是一个数组).
在我们对array_map的回调中,我们使用explode再次拆分值,现在,作为我们的分隔符.
$data = "1,2,3;4,5,6;7,8,9";
$ret = array_map (
function ($_) {return explode (',', $_);},
explode (';', $data)
);
print_r ($ret);
Run Code Online (Sandbox Code Playgroud)
产量
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 4
[1] => 5
[2] => 6
)
[2] => Array
(
[0] => 7
[1] => 8
[2] => 9
)
)
Run Code Online (Sandbox Code Playgroud)
它不起作用,为什么?
可能是因为您使用的是5.3之前的PHP版本,如果是这样,您可以使用此代码段:
function explode_by_comma ($_) {
return explode (',', $_);
}
$ret = array_map ('explode_by_comma', explode (';', $data));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7641 次 |
| 最近记录: |