有一个$ x作为数组:
$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)
)
);
任何人都可以告诉我帮助算法这样做:?
答案 0 :(得分:4)
$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;
}
答案 1 :(得分:1)
$x2 = array();
$i = 0;
foreach ( $x1 as $data ) {
if ( empty($x2['A']) ) {
$x2['A'] = array();
}
$x2['A'][ array_shift($data) ] = $data;
}
答案 2 :(得分:0)
请试一试
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];
}
}
答案 3 :(得分:0)
以下是我如何去做。不是最好的方法,但它运作正常。
$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;
}