繁体   English   中英

如何在不循环的情况下将多维关联数组转换为php中的数值数组?

[英]How to convert Multi-Dimensional Associative array in to Numeric Array in php, without looping?

我创建了一个工作函数,用于将以下关联数组拆分为两个数字数组。 我想知道是否有更好的方法,避免循环。

我有一个数组如下。

Array
(
    [0] => stdClass Object
        (
            [CreatedAt] => 16/02/2014
            [Occurrence] => 1
        )

    [1] => stdClass Object
        (
            [CreatedAt] => 17/02/2014
            [Occurrence] => 8
        )

    [2] => stdClass Object
        (
            [CreatedAt] => 18/02/2014
            [Occurrence] => 4
        )

    [3] => stdClass Object
        (
            [CreatedAt] => 20/02/2014
            [Occurrence] => 11
        )

)

需要将其转换为两个数值数组

Array
(
    [0] => 16/02/2014
    [1] => 17/02/2014
    [2] => 18/02/2014
    [3] => 20/02/2014
)

Array
(
    [0] => 1
    [1] => 8
    [2] => 4
    [3] => 11
)

我用了一个foreach循环

$array1 = array();
$array2 = array();
foreach ($mainArray as $key => $value) {
    $array1[] = $value->CreatedAt;
    $array2[] = $value->Occurrence;
}
print_r($array1);
print_r($array2);

但是,如果我在mainArray中有1000行,它将影响性能。 如果您有更好的解决方案,请让我们都知道。

试试这个:

$objName = (object) array('aFlat' => array());

    array_walk_recursive($array, create_function('&$v, $k, &$t', '$t->aFlat[] = $v;'), $objName);

    var_dump($objName->aFlat);

参考: 如何在PHP中将多维数组“展平”为简单数组?

http://in1.php.net/array_column

也许这可以解决您的问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM