2016-08-30 43 views
0

想知道我是否可以得到一些幫助。數組分割逗號分開某些鍵

我有,看起來像下面的數組:

Array 
(
    [0] => Array 
    (
     [0] => Model X, Model S, Model 3 
     [1] => Tesla 
     [2] => Elon Musk 
    ) 
) 

我想創建另一個數組(在密鑰的分離[0]用逗號分隔),這樣

Array 
(
    [0] => Array 
    (
     [0] => Model X 
     [1] => Tesla 
     [2] => Elon Musk 
    ) 
    [1] => Array 
    (
     [0] => Model S 
     [1] => Tesla 
     [2] => Elon Musk 
    ) 
    [2] => Array 
    (
     [0] => Model 3 
     [1] => Tesla 
     [2] => Elon Musk 
    ) 
) 

希望這是有道理的,希望得到一些幫助。

謝謝。

+1

您有什麼問題?只需在'$ val [0]'上調用'explode()',然後遍歷它並將數組推送到結果數組上。 – Barmar

+0

另外,我相信在你的真實數組中你有引號圍繞字符串(這個筆記是給沒有經驗的讀者的) – happymacarts

+0

@Barmar,可以使用explode(),但我真的不知道如何將它推回去並複製所有其他值進入數組... – devofash

回答

0

使用explodearray_slicearray_merge功能的解決方案:

$arr = [0 => ['Model X, Model S, Model 3', 1 => 'Tesla', 2 => 'Elon Musk']]; 
$model_info = array_slice($arr[0], 1); // model's additional info 
$result = []; 

foreach (explode(",", $arr[0][0]) as $model) { 
    $result[] = array_merge([$model], $model_info); 
} 
// now $result contains the expected array 
+0

非常感謝 – devofash

+0

@devofash,不客氣 – RomanPerekhrest

+0

該示例中的數組只有三個值,但我正在處理的數組有更多。我需要在同一個數組中多次切分值,但切片值會替換零值,但不是我實際切片的值。有沒有辦法控制它? – devofash

1

這是您的解決方案。

$Array=array(array('Model X, Model S, Model 3','Tesla','Elon Musk')); 

$Unfold1=explode(',',$Array[0][0]); 

foreach($Unfold1 AS $Data){ 
    $Response[]=array($Data,$Array[0][1],$Array[0][2]); 
} 
print_r($Response); 
+1

謝謝尼萊什。欣賞它。 – devofash

+0

請將您的問題標記爲已關閉。 –