[英]PHP: Array elements with a certain key
我有一個像這樣的PHP數組(sans語法):
array
(
['one'] => array (
['wantedkey'] => 5
['otherkey1'] => 6
['otherkey2'] => 7
)
['two'] => => array (
['otherkey1'] => 5
['otherkey2'] => 6
['wantedkey'] => 7
)
['three'] => => array (
['otherkey1'] => 5
['wantedkey'] => 6
['otherkey2'] => 7
)
)
例如,如果我使用array_walk_recursive
,則僅打印鍵為'wantedkey'
的元素的值的最佳方法是什么?
謝謝!
這樣的東西行不行?
function test_print($item, $key) {
if ($key === 'wantedkey') {
print $item;
}
}
array_walk_recursive($myarray, 'test_print');
還是我錯過了您的要求? [我猜我是]
因此,處理您正在尋找的東西的最好方法是:
function inner_walk ($item, $key) {
if ($key === 'wantedkey2') {
print $item;
}
}
function outer_walk ($item, $key) {
if (($key === 'wantedkey1') && (is_array($item)) {
array_walk($item,'inner_walk');
}
}
array_walk($myarray,'outer_walk');
array_walk_recursive
的問題在於它實際上並未告訴您陣列中的位置。 從理論上講,您可以將與array_walk_recursive
類似的東西應用於上述內容,但是由於您僅呈現了二維數組,因此使用array_walk
應該可以正常工作。
我可能在這里也誤會了一些東西,但為什么不只是在它們上面散布呢?
foreach($myarray as $subarray) {
echo $subarray['wantedkey'];
}
由於它不使用array_walk_recursive
,因此不會直接回答您的原始問題,但是它似乎可以更array_walk_recursive
地完成您所要求的工作。 我誤會了嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.