2016-10-19 4 views
0

Поэтому у меня есть массив, который выглядит следующим образом:Используйте одномерный массив, взорвать его и создать многомерный-массив

Array 
(
    [0] => [email protected]:John 
    [1] => [email protected]:Jane 
) 

Как вы можете видеть, это user'semail и имя пользователя, отделено толстой кишкой.

Я хочу создать мульти двумерный массива, который взрывает двоеточие, а затем создаст многомерный массив, который будет выглядеть как

Array 
(
    [0] => Array 
    (
     [user_email] => [email protected] 
     [user_name] => John 
    ) 

    [1] => Array 
    (
     [user_email] => [email protected] 
     [user_name] => Jane 
    ) 

) 
+1

'foreach' петля,' explode' на толстой кишке, дайте ему идти, я уверен, вы можете сделать это :-) – nogad

+0

я знаю Еогеасп и взрываются будет работать. Но как же мне приступить к созданию нового массива? –

+0

$ new [counter \ key] [user_email] = взорванная часть 0; $ new [counter \ key] [user_name] = взорвана часть 1; – nogad

ответ

0

Вы можете сделать это нравится:

<?php 

$data = [ 
    "[email protected]:John", 
    "[email protected]:Jane" 
]; 

function customArray($data){ 
    $final = []; 
    $i = 0; 

    foreach($data as $k => $v){ 
     $splitted = explode(":",$v); 
     $final[$i]['user_email'] = $splitted[0]; 
     $final[$i]['user_name'] = $splitted[1]; 
     $i++; 
    } 

    return $final; 
} 

print_r(customArray($data)); 

Посмотреть результаты here. В основном то, что я выше

  • итерация по массиву,
  • взрываются значение разделителем :,
  • индексировать их в итерации, используя тот же [$i] так, что новый ключ/значение в паре правильно для исходного элемента массива.

ли правильно называть вещи, хотя, я просто привожу пример :-)

+0

давай, помогите чему-нибудь научиться, не просто скомпонуйте код – nogad

+0

да, я отредактирую и добавлю немного больше объяснений в немного – Ekin

+0

@ joseph-parker, если вы не понимаете его части, не стесняйтесь спрашивать а также, добро пожаловать в SO! – Ekin

0

Вы можете взорвать каждый элемент исходного массива и сохранить его в новом массиве, как показано ниже. Наконец, вы получите желаемый формат в массиве $ result.

$source_array = array("[email protected]:John","[email protected]:Jane"); 
foreach($name_email_array as $key => $value){ 
     $name_email = explode(":",$value); 
     $result[$key]['user_email'] = $name_email[0]; 
     $result[$key]['user_name'] = $name_email[1]; 
    } 
Смежные вопросы