2016-06-13 56 views
1

阅读我得到这个字符串,我从表中获取在MySQL如何分割数组和PHP

$my_string = 40-10-10,41-20-20,42-30-30;

而且我用这个爆发,

$my_array = explode(',', $my_string);print_r我得到这个:

Array 
(
    [0] => 40-10-10 
    [1] => 41-20-20 
    [2] => 42-30-30 
) 

现在我想的是阵列中的每个元素进入另一个数组,例如:

[0] => 40-10-10应该是一个数组这样

Array 
(
[0] => 40 
[1] => 10 
[2] => 10 
) 

,然后将这些值转换成变量

$v1 = 40; 
$v2 = 10; 
$v3 = 10; 

而且做同样的元素的数组的休息,我坚持,我不有想法如何实现这一点,我需要一些帮助,谢谢。

+0

那么你需要在你的主要foreach中使用另一个explode/foreach。 –

+0

'爆炸()'再次,但只是让他们在阵列中,不要担心个人增值税。 – AbraCadaver

回答

1
$my_array = explode(',', $my_string); 

然后

$my_array2 = explode('-', $my_array[0]); 

$v1 = $my_array2[0]; 
$v2 = $my_array2[1]: 
$v3 = $my_array2[2] 

或想建议通过E_p

list($v1 , $v2, $v3) = explode('-', $my_array[0]); 

和repearm为$ my_array(最终以一个foreach)其他指数

+0

列表($ v1,$ v2,$ v3)=爆炸(... –

+0

@E_p是......正确的感谢 – scaisEdge

0
$my_string = 40-10-10,41-20-20,42-30-30; 
$my_array = explode(',', $my_string); 

$i = 1; 
foreach($my_array as $m) { 
    $my_numbers = explode('-', $my_string); 
    foreach($my_numbers as $number) { 
     ${"v".$i} = $number; 
     $i++; 
    } 
} 

现在你可以做$ v1,$ v2,...

0

你可以尝试使用array_map函数,这是一个代码少,可读性更强的函数。

$my_array = explode(',', $my_string); 

function get_array($str){ 

    return explode('-', $str); 

} 

$result = array_map('get_array', $my_array);