在PHP中将字符串转换为多维数组

4

我在php中将字符串转换为多维数组时遇到了问题。这是我的字符串:

$String = a,b,c|d,e,f|g,h,y|

这是我正在尝试的内容:
$one=explode("|",$String);
foreach ($one as $item)
{
    $one=explode(",",$one);
}

我想创建这个数组:

$array={ {a,b,c}, {d,e,f}, {g,h,y} };
5个回答

4
尝试使用 -
$one=explode("|",$String);
$array = array();
foreach ($one as $item){
    $array[] = explode(",",$item);
}

对不起,我不知道为什么第一次在我的电脑上无法运行。我又尝试了一遍,现在已经可以了。也许我那一次犯了错误。非常感谢你。 - badr aldeen

2

尝试使用以下代码:

$string = 'a,b,c|d,e,f|g,h,y|';
$arr = array_map(function($iter){ return explode(',',$iter);},explode('|',$string));

希望这能有所帮助。

2

除了循环部分外,您已经做得差不多正确了。尝试这样做:

$result = [];
$String = 'a,b,c|d,e,f|g,h,y|';

$firstDimension = explode('|', $String); // Divide by | symbol
foreach($firstDimension as $temp) {
    // Take each result of division and explode it by , symbol and save to result
    $result[] = explode(',', $temp);
}

print_r($result);

1
尝试一下这个 -
$String = 'a,b,c|d,e,f|g,h,y|';

$one = array_filter(explode("|", $String));

print_r($one); //Array ( [0] => a,b,c [1] => d,e,f [2] => g,h,y ) 

$result = array_map('v', $one);

function v($one) {
    return explode(',',$one);
}

print_r($result); // Array ( [0] => Array ( [0] => a [1] => b [2] => c ) [1] => Array ( [0] => d [1] => e [2] => f ) [2] => Array ( [0] => g [1] => h [2] => y ) )

0
使用这段代码
$String= 'a,b,c|d,e,f|g,h,y|';

$one=explode("|",$String);

print_r(array_filter($one));

输出将会是

Array
(
    [0] => a,b,c
    [1] => d,e,f
    [2] => g,h,y
)

这只是打印数组和一维数组而不是二维数组,而且你没有分割“,”。 - badr aldeen
请再次检查一下,看它是否能够生成所需的数据。 - Sougata Bose
谢谢你的帮助,但我需要的不是你上面写的内容。你可以再检查一下我的问题,输出结果是不同的。 - badr aldeen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接