downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ArrayObject::getFlags> <ArrayObject::exchangeArray
[edit] Last updated: Fri, 18 May 2012

view this page in

ArrayObject::getArrayCopy

(PHP 5 >= 5.0.0)

ArrayObject::getArrayCopyCreates a copy of the ArrayObject.

Beschreibung

public array ArrayObject::getArrayCopy ( void )

Exports the ArrayObject to an array.

Parameter-Liste

Diese Funktion hat keine Parameter.

Rückgabewerte

Returns a copy of the array. When the ArrayObject refers to an object an array of the public properties of that object will be returned.

Beispiele

Beispiel #1 ArrayObject::getArrayCopy() example

<?php
// Array of available fruits
$fruits = array("lemons" => 1"oranges" => 4"bananas" => 5"apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);
$fruitsArrayObject['pears'] = 4;

// create a copy of the array
$copy $fruitsArrayObject->getArrayCopy();
print_r($copy);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
    [pears] => 4
)



add a note add a note User Contributed Notes ArrayObject::getArrayCopy
Ivo von Putzer 04-Dec-2011 10:06
If you did something like this to make your constructor multidimensional capable you will have some trouble using getArrayCopy to get a plain array straight out of the method:
<?php
public function __construct( $array = array(), $flags = 2 )
{
   
// let’s give the objects the right and not the inherited name
   
$class = get_class($this);

    foreach(
$array as $offset => $value)
       
$this->offsetSet($offset, is_array($value) ? new $class($value) : $value);

   
$this->setFlags($flags);
}
?>

That’s the way I solved it:

<?php
public function getArray($recursion = false)
{
   
// just in case the object might be multidimensional
   
if ( $this === true)
        return
$this->getArrayCopy();

    return
array_map( function($item){
        return
is_object($item) ? $item->getArray(true) : $item;
    },
$this->getArrayCopy() );
}
?>

Hope this was useful!

 
show source | credits | stats | sitemap | contact | advertising | mirror sites