我有阵列
array
0 =>
array
2 => int 50000
1 =>
array
2 => int 30000
2 =>
array
1 => int 25000
3 =>
array
1 => int 20000
4 =>
array
1 => int 10000
我需要创建数组,结果是:
array
2 => int 50000
2 => int 30000
1 => int 25000
1 => int 20000
1 => int 10000
感谢所有人。 对不起,我的英语非常糟糕:(
答案 0 :(得分:2)
PHP不允许数组具有相同的键。这将显示php将如何处理一个foreach循环,它将数组重写为具有所需键和值的新数组
$array = array(
0 =>
array(
2 => 50000),
1 =>
array(
2 => 30000),
2 =>
array(
1 => 25000),
3 =>
array(
1 => 20000),
4 =>
array(
1 => 10000)
);
$new_array = array();
foreach($array as $data)
{
foreach($data as $key => $val)
{
$new_array[$key] = $val;
}
}
var_dump($new_array);
这将输出
array(2) {
[2]=>
int(30000)
[1]=>
int(10000)
}
正如你所看到的,每个循环都会覆盖键,因为它们是相同的,值也是如此,我认为你可以使用上面的函数来从$new_array
foreach($data as $key => $val)
{
$new_array[] = $val;
}
答案 1 :(得分:1)
这样做你想要的(不保留子键,因为你不能有多个具有相同键的元素):
$flat_array = array_map('current', $array);