我有以下数组的键和值。如何重新创建此数组以使第二列成为键,第三列成为值。同时删除所有不需要的间距。
Array
(
[16] => hasKeyframes : true
[17] => hasMetadata : true
[18] => duration : 30
[19] => audiosamplerate : 22000
[20] => audiodatarate : 68
[21] => datasize : 1103197
}
新数组应如下所示。
Array
(
[hasKeyframes] => true
[hasMetadata] => true
...
}
答案 0 :(得分:4)
$newArray=array();
foreach($array as $value)
{
$pair=explode(":",$value);
$newArray[trim($pair[0])] = trim($pair[1]);
}
修改强>
如果我们有类似[19] =>的内容 持续时间:00:00:31.03,然后我们只 获得$ for $ pair [1]
$newArray=array();
foreach($array as $value)
{
$pair=explode(":",$value,2);
$newArray[trim($pair[0])] = trim($pair[1]);
}
答案 1 :(得分:1)
我的解决方案使用array_walk()
,因为使用了匿名函数,所以从PHP 5.3起作用。
$array=array(/* ORIGINAL ARRAY */);
$newarray=array();
array_walk($array, function ($v, $k) use (&$newarray) {
$pos=strpos($v, ':');
$newkey=substr($v, 0, $pos);
$newvalue=substr($v, $pos+1);
$newarray[$newkey]=$newvalue;
});