变换数组uplevel数组元素?
问题描述:
有一个$ x作为数组:变换数组uplevel数组元素?
$x1 = array(
0=>array("up1", -10, 1, 1, 2.5),
19=>array("up2",-4, 1.2, 2, 0.5)
);
我想改造$x1
成了x2
这样的:
$x2 = Array(
'A'=>
array(
"up1"=>array(-10, 1, 1, 2.5),
"up2"=>array(-4, 1.2, 2, 0.5)
)
);
任何人都可以告诉帮我的算法来做到这一点:?
答
$x2 = array();
foreach ($x1 as $x) {
$key = array_shift($x);
$x2['A'][$key] = $x;
}
或者,如果你想成为真正的聪明:
$x2 = array();
foreach ($x1 as $x) {
$x2['A'][array_shift($x)] = $x;
}
答
请试试这个
for ($i = 0 ; $x1[$i] != NULL ; $i++) {
$x1[$i] = 'a'=>($x1[$i]);
for ($j = 0 ; $x1[$i][$j] != NULL; $j++) {
$x1[$i][$j] = 'up'.$j=> $x1[$i][$j];
}
}
+2
如果你打算使用'for'循环,不要使条件'$ x1 [$ i]!= NULL',它会引发通知!此外,你有奇怪的位置'=>的语法错误。 – deceze 2011-04-08 08:02:20
答
这是我会怎么做呢。不是最好的方式,但它工作正常。
$x1 = array(
0=>array("up1", -10, 1, 1, 2.5),
19=>array("up2",-4, 1.2, 2, 0.5)
);
$x2 = array('A' => array());
foreach($x1 as $current) {
$key = $current[0];
unset($current[0]);
$x2['A'][$key] = $current;
}
非常酷,不知道array_shift()。总是在这里学习新的东西! – 2011-04-08 08:08:01
明确,简单,可以理解 – kn3l 2011-04-08 08:11:42
@Mike PHP中有很多有用的[数组函数](http://php.net/manual/en/ref.array.php)。由于数组几乎都是在PHP中发展的,所以您应该花时间浏览它们。有一天你会找到一个用途。 @IEnAk ......尚未被接受。 :-(只是在开玩笑,我真的不需要这些分数。; o))) – deceze 2011-04-08 08:20:33