devofash
devofash

Reputation: 328

Array Split comma separated on certain key

Wondering if I can get some assistance.

I've got an array that looks like below:

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

I'd like to create another array (split on key[0] with a comma), like this

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
    )
)

Hope this makes sense, would appreciate some assistance.

Thanks.

Upvotes: 0

Views: 71

Answers (2)

RomanPerekhrest
RomanPerekhrest

Reputation: 92894

The solution using explode, array_slice and array_merge functions:

$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

Upvotes: 0

Nilesh
Nilesh

Reputation: 62

Here's your solution.

$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);

Upvotes: 1

Related Questions