PHP массив разделенных строк в многомерное значение ключа

У меня есть следующий массив строк с разделителями ‘:’ и ‘;’ (фактические данные будут состоять из 1 или более строк с 5 или более одинаковыми парами Fieldname: value в каждой строке)

0 => string 'Fieldname1:value;Filedname2:value;Fieldname3:value;...'
1 => string 'Fieldname1:value;Filedname2:value;Fieldname3:value;...'
2 => string 'Fieldname1:value;Filedname2:value;Fieldname3:value;...'

Когда я превращаю вышеупомянутое в значение key =>, Filednames перезаписывают. Поэтому я пытаюсь поместить его в многомерный массив. Я немного осмотрелся, не нашел решения и нуждаюсь в помощи.

Я использовал explode () и получил это далеко:

foreach ($array as $line) {
$value[] = explode(';', $line);
}
var_dump($value);


array
0 =>
array =>
string 'Fieldname1:value'
string 'Filedname2:value'
string 'Fieldname3:value'
1 =>
array =>
string 'Fieldname1:value'
string 'Filedname2:value'
string 'Fieldname3:value'
2 =>
array =>
string 'Fieldname1:value'
string 'Filedname2:value'
string 'Fieldname3:value'

Как мне получить это в ключ => значение, как:

array
0 =>
array =>
'Fieldname1' => 'value'
'Fieldname2' => 'value'
'Fieldname3' => 'value'
1 =>
'Fieldname1' => 'value'
'Fieldname2' => 'value'
'Fieldname3' => 'value'
2=>
'Fieldname1' => 'value'
'Fieldname2' => 'value'
'Fieldname3' => 'value'

-1

Решение

Проверено и работает,

<?php
$a = [
'Fieldname1:value;Filedname2:value;Fieldname3:value',
'Fieldname1:value;Filedname2:value;Fieldname3:value',
'Fieldname1:value;Filedname2:value;Fieldname3:value',
];
$array = array();
foreach($a as $b){
$temp_array = array();
foreach(explode(';',$b) as $c){
list($key,$val) = explode(':',$c);
$temp_array[$key] = $val;
}
$array[] = $temp_array;
}

print_r($array);

возвращается

Array
(
[0] => Array
(
[Fieldname1] => value
[Filedname2] => value
[Fieldname3] => value
)

[1] => Array
(
[Fieldname1] => value
[Filedname2] => value
[Fieldname3] => value
)

[2] => Array
(
[Fieldname1] => value
[Filedname2] => value
[Fieldname3] => value
)

)

http://ideone.com/Q69vVK

-2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector