Преобразование одномерного массива в двухмерный массив

У меня есть массив, структура которого в основном так:

array('id,"1"', 'name,"abcd"', 'age,"30"')

Я хочу преобразовать его в двухмерный массив, в котором каждый элемент имеет ключ -> значение:

array(array(id,1),array(name,abcd),array(age,30))

Любой совет будет принят во внимание!

Я попробовал этот код:

foreach ($datatest as $lines => $value){
$tok = explode(',',$value);
$arrayoutput[$tok[0]][$tok[1]] = $value;
}

но это не сработало.

-4

Решение

Предполагая, что вы хотите удалить все кавычки в соответствии с вашим вопросом:

$oldArray = array('id,"1"', 'name,"abcd"', 'age,"30"')
$newArray = array();
foreach ($oldArray as $value) {
$value = str_replace(array('"',"'"), '', $value);
$parts = explode(',', $value);
$newArray[] = $parts;
}
1

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

Вы можете сделать что-то вроде этого:

$a = array('id,"1"', 'name,"abcd"', 'age,"30"');
$b = array();
foreach($a as $first_array)
{
$temp = explode("," $first_array);
$b[$temp[0]] = $b[$temp[1]];
}
0

Вы хотите эти строки как массив в массиве? Если да, вот решение:

$array = array('id,"1"', 'name,"abcd"', 'age,"30"') //it's array of 3 strings
$d_array = array(); //it's an empty array

//foreach string of first array
foreach ($array as $a) {
$pieces = explode(',',$a); //from string to array
$d_array[] = $pieces; //insert array to the array
}

var_dump($d_array); //your new multi array
0

$AR = array('id,"1"', 'name,"abcd"', 'age,"30"');
$val = array();
foreach ($AR as $aa){
$val[] = array($aa);
}
print_r($val);

Выход:

Array ( [0] => Array ( [0] => id,"1" ) [1] => Array ( [0] => name,"abcd" ) [2] => Array ( [0] => age,"30" ) )
0

С array_map функция:

$arr = ['id,"1"', 'name,"abcd"', 'age,"30"'];
$result = array_map(function($v){
list($k,$v) = explode(',', $v);
return [$k => $v];
}, $arr);

print_r($result);

Выход:

Array
(
[0] => Array
(
[id] => "1")

[1] => Array
(
[name] => "abcd")

[2] => Array
(
[age] => "30")
)
0
По вопросам рекламы [email protected]