<?php
$refs = array();
function wrap( $arr){
// Need to clear out the global references array, I chose to do this here
global $refs;
$refs = array();
test( $arr);
}
function test( $arr){
global $refs;
$refs[] = $arr;
foreach( $arr as $v) {
if( $v === $arr || in_array( $v, $refs)) {
print ' ref ';
} else {
if( is_array( $v)) {
test( $v);
} else {
print $v . ', ';
}
}
}
}
echo "Array 1:\n";
$array1 = array(1, 2, 3);
$array1[4] = &$array1;
wrap( $array1);
echo "\nArray 2:\n";
$array2 = array(1, 2, 3, array(1, 2, 3));
$array2[2] = &$array2;
wrap( $array2);
echo "\nArray 3:\n";
$array3 = array(1, 2, 3, array(1, 2, 3));
$array3[3][1] = &$array3;
wrap( $array3);
preferences:
34.68 ms | 402 KiB | 5 Q