是否有一个函数可以将一个PHP数组复制到另一个数组?

我已经被烧毁了几次试图复制PHP数组。我想将对象内定义的数组复制到对象外部的全局数组。


当前回答

foreach($a as $key => $val) $b[$key] = $val ;

同时保留键和值。数组a是数组b的精确副本

其他回答

private function cloneObject($mixed)
{
    switch (true) {
        case is_object($mixed):
            return clone $mixed;
        case is_array($mixed):
            return array_map(array($this, __FUNCTION__), $mixed);
        default:
            return $mixed;
    }
}

如果你的数组只有基本类型,你可以这样做:

$copy = json_decode( json_encode($array), true);

您不需要手动更新引用 我知道这不是对每个人都有效,但对我很有效

<?php
function arrayCopy( array $array ) {
        $result = array();
        foreach( $array as $key => $val ) {
            if( is_array( $val ) ) {
                $result[$key] = arrayCopy( $val );
            } elseif ( is_object( $val ) ) {
                $result[$key] = clone $val;
            } else {
                $result[$key] = $val;
            }
        }
        return $result;
}
?>

这是我在Php中复制数组的方式:

function equal_array($arr){
  $ArrayObject = new ArrayObject($arr);
  return $ArrayObject->getArrayCopy();  
}

$test = array("aa","bb",3);
$test2 = equal_array($test);
print_r($test2);

这个输出:

Array
(
[0] => aa
[1] => bb
[2] => 3
)

我很久以前就知道这一点,但这对我来说很有效。

$copied_array = array_slice($original_array,0,count($original_array));