PHP bulunuyor gibi, size uygun olacak emin değil> = 5.3, sadece, ama burada bir olası çözüm, using array_walk_recursive and a closure (see Anonymous functions) em>:
$array = array(
array(1, 2, 3),
array(4, 5, 6),
array(7),
);
$result = array();
array_walk_recursive($array, function ($value, $key) use (& $result) {
$result[] = $value;
});
var_dump($result);
Ve sonuç:
array
0 => int 1
1 => int 2
2 => int 3
3 => int 4
4 => int 5
5 => int 6
6 => int 7
Temelde, kapatma ben bu işe lazım tek yolu şudur: anonim işlevi, referans olarak, $result değişkeni almak için kullanılır.
Ve, sadece bu PHP 5.2 için çalışma var sadece (i.e. not using a closure) bu ile, onu göndermek için:
$result = array();
array_walk_recursive($array, 'my_func', & $result);
var_dump($result);
function my_func($value, $key, & $result) {
$result[] = $value;
}
Hangi çok çalışıyor - ama bir uyarı yükseltir:
Deprecated: Call-time pass-by-reference has been deprecated
Unfortunatly, I didn't find a way of getting this to work without passing $result by reference at call-time :-(
(Maybe someone else has an idea, about how to do that ?)