Php 将一维数组转换为二维数组
我有一个数组,它的结构基本上是这样的:Php 将一维数组转换为二维数组,php,arrays,dimensional,Php,Arrays,Dimensional,我有一个数组,它的结构基本上是这样的: array('id,"1"', 'name,"abcd"', 'age,"30"') $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]]; } 我想把它转换成二维数组,每个元素都是
array('id,"1"', 'name,"abcd"', 'age,"30"')
$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]];
}
我想把它转换成二维数组,每个元素都是key->value:
array(array(id,1),array(name,abcd),array(age,30))
任何建议都将不胜感激
我尝试了以下代码:
foreach ($datatest as $lines => $value){
$tok = explode(',',$value);
$arrayoutput[$tok[0]][$tok[1]] = $value;
}
但它不起作用。您可以这样做:
array('id,"1"', 'name,"abcd"', 'age,"30"')
$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]];
}
输出:
要将这些字符串作为数组中的数组吗?如果是,以下是解决方案:
$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
假设您希望根据您的问题删除所有引号:
$oldArray = array('id,"1"', 'name,"abcd"', 'age,"30"')
$newArray = array();
foreach ($oldArray as $value) {
$value = str_replace(array('"',"'"), '', $value);
$parts = explode(',', $value);
$newArray[] = $parts;
}
使用
array\u 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"
)
)
只需迭代它,并构建一个新的吗?foreach($lines=>$value){$tok=explode(',',$value);$arrayoutput[$tok[0]][$tok[1]]=$value;}我尝试了它,但没有任何帮助!将其用作一维键值对数组不是更容易吗?