Выборка из строки и формирования массива
name::name1:info1||name2:info2
status::name1:admin||name2
Задача построить массив вида
array (
'name1' =>
array (
'info' => 'info1',
'status' => 'admin',
),
'name2' =>
array (
'info' => 'info2',
),
Регулярные выражения помогут. Только структура начальной строки немного странная и, как мне кажется, нелогичная.
Код:
$strs = explode("\n",'name::name1:info1||name2:info2
status::name1:admin||name2:user');
$names_str = str_replace('name::','',$strs[0]);
$status_str = str_replace('status::','',$strs[1]);
$names = explode('||',$names_str);
foreach($names as $name){
$values = explode(':',$name);
$array[$values[0]]['info'] = $values[1];
}
$status = explode('||',$status_str);
foreach($status as $val){
$values = explode(':',$val);
$array[$values[0]]['status'] = $values[1];
}
print_r($array);
status::name1:admin||name2:user');
$names_str = str_replace('name::','',$strs[0]);
$status_str = str_replace('status::','',$strs[1]);
$names = explode('||',$names_str);
foreach($names as $name){
$values = explode(':',$name);
$array[$values[0]]['info'] = $values[1];
}
$status = explode('||',$status_str);
foreach($status as $val){
$values = explode(':',$val);
$array[$values[0]]['status'] = $values[1];
}
print_r($array);