2016-06-13 54 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);