PHP:阵列合并



如果我不正确地问这个问题,我对PHP是相对较新的。在这里:

我的数组:

$value = array(
        array('2500'),
        array('3000'),
        array('3500'),
        array('4000')
    );

来自代码:

$Array = array();
for ($i=0; $i<count($value);$i++) {
    $Array[]=$value;
} 
echo '<pre>';   
print_r($Array);
echo '</pre>';

如何将其合并为一个阵列:

Array
    [0] => 2500
    [1] => 3000
    [2] => 3500
    [3] => 4000
)

我尝试了很多从array_merge到array_combine的代码,似乎没有什么能做的。是我在代码中缺少的东西,还是有可以实现此目的的函数或过滤器。

谢谢

尝试以下:

<?php
$value = array(
        array('2500'),
        array('3000'),
        array('3500'),
        array('4000')
    );
echo '<pre>'; // for display purpose only
print_r($value); // for display purpose only
$array = array();
if (is_array($value)) {
    foreach ($value as $v) {
        $array = array_merge($array,$v);
    }
} else {
    $array = array($value);
}
print_r($array); // for display purpose only

根据OP的更新编辑

http://www.phpwin.org/s/ib6doo

更改

$Array[]=$value;

to

$Array[]=array_merge($value, $Array);

您可以使用foreach通过数组进行迭代。

<?php
$data = array(
    array('2500'),
    array('3000'),
    array('3500'),
    array('4000')
);
$output = [];
foreach($data as $value) {
    $output[] = $value[0];
}
var_dump($output);

输出:

array (size=4)
  0 => string '2500' (length=4)
  1 => string '3000' (length=4)
  2 => string '3500' (length=4)
  3 => string '4000' (length=4)

您可以使用array_map在数组的每个成员上运行一个函数。array_pop返回每个子阵列的最后一个元素"弹出"。

$output = array_map('array_pop', $data);
var_dump($output);

输出:

array (size=4)
  0 => string '2500' (length=4)
  1 => string '3000' (length=4)
  2 => string '3500' (length=4)
  3 => string '4000' (length=4)

您可以尝试此

$output = array_column($value, 0);
print_r($output);

最新更新