此問題中的N表示任意大小的任意數字,並不一定(但可以)相同。我有一個具有N個鍵=>值對的數組。這些鍵=>值對還可以包含另一個大小爲N的數組,其中N個鍵=>值對。這個數組可以有N個深度,這意味着數組中的任何key =>值對都可以映射到另一個數組。如何獲得該數組的所有值(將它們存儲在一個新的1維數組中),忽略鍵鍵=>值對?遍歷數組數組的所有值
回答
搶在yurkowski點網 10月26日 - 2010 06:16
如果你真的不特別 關心數組的鍵,你可以 捕獲所有值非常簡單:
$sample = array(
'dog' => 'woof',
'cat' => array(
'angry' => 'hiss',
'happy' => 'purr'
),
'aardvark' => 'kssksskss'
);
$output = array();
// Push all $val onto $output.
array_walk_recursive($sample, create_function('$val, $key, $obj', 'array_push($obj, $val);'), &$output);
// Printing echo nl2br(print_r($output, true));
/*
* Array
* (
* [0] => woof
* [1] => hiss
* [2] => purr
* [3] => kssksskss
*)
*/
你可以做SMT是這樣的:
$output = array();
function genArray($arr) {
global $output;
foreach($arr as $key => $val) {
if(is_array($val))
genArray($val);
else
output[$key] = $val;
}
}
genArray($myArray);
相反遞歸的,使用全局變量和函數,它可以通過循環來完成,但是這只是一個一般的想法,大概需要一點點你的注意,反正。這應該是件好事:)
使用舊版本的PHP,這是最好的解決方案。我會刪除全局變量,只是在函數中返回它。 – bmarti44 2010-11-05 14:52:30
@ bmarti44:返回一個數組?或數組元素? – hummingBird 2010-11-05 15:00:29
啊,我看你在這種情況下不能退貨。這將返回一個數組元素,你是正確的。 – bmarti44 2010-11-05 15:16:46
在array_values php doc的評論中有很多解決方案。
- 1. 遍歷數組值
- 2. 遍歷數組
- 3. 遍歷數組
- 4. 遍歷數組
- 5. 遍歷數組
- 6. 遍歷數組
- 7. 遍歷數組
- 8. 遍歷數組
- 9. 遍歷數組
- 10. 遍歷數組
- 11. 如何遍歷數組中的數組以查看所有值是否相等?
- 12. jquery遍歷數組
- 13. 遍歷數組--java
- 14. 遍歷數組樹?
- 15. ç遍歷數組
- 16. typoscript - 遍歷數組?
- 17. php數組遍歷
- 18. 數組遍歷非數值索引
- 19. 遍歷一個數組,並總結所有值與JS
- 20. 帶零值的PHP遍歷數組
- 21. 如何遍歷PostForm中的數組值?
- 22. 通過具有所有唯一ID的多維數組遍歷多個數組
- 23. 遍歷數組的排列
- 24. 遍歷jquery中的數組
- 25. C中的數組遍歷#
- 26. 遍歷對象的數組
- 27. 遍歷PHP中的數組
- 28. F中的數組遍歷#
- 29. Clojure進入數組遍歷數組
- 30. 如何遍歷數組數組
雖然這似乎是最好的答案,我唯一的疑慮是,這個功能只能由PHP> = 5.3的支持。但是,這仍然是最好的辦法。 – bmarti44 2010-11-05 14:50:33
編輯到我以前的評論,內聯PHP和函數只支持PHP> = 5.3。如果此函數僅使用對函數的引用,則它將在較早版本的PHP中起作用。 – bmarti44 2010-11-05 15:42:00