PHP:具有特定键的数组元素

PHP:具有特定键的数组元素,php,recursion,multidimensional-array,Php,Recursion,Multidimensional Array,我有这样一个PHP数组(sans语法): 例如,如果我使用的是array\u walk\u recursive,那么仅打印键为'wantedkey'的元素的值的最佳方法是什么 谢谢 像这样的东西不管用吗 function test_print($item, $key) { if ($key === 'wantedkey') { print $item; } } array_walk_recursive($myarray, 'test_print'); 还是我在你的要求中遗漏了

我有这样一个PHP数组(sans语法):

例如,如果我使用的是
array\u walk\u 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\u walk\u recursive
的问题在于它实际上没有告诉您在数组中的位置。理论上,您可以将类似于
array\u walk\u recursive
的方法应用于上述内容,但由于您只提供了一个二维数组,因此使用
array\u walk
应该可以很好地工作。

类似的方法不可以吗

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\u walk\u recursive
的问题在于它实际上没有告诉您在数组中的位置。理论上,你可以将类似于
array\u walk\u recursive
的东西应用到上面,但是由于你只展示了一个二维数组,使用
array\u walk
应该可以很好地工作。

我可能也有误解,但为什么不直接讨论一下呢

foreach($myarray as $subarray) {
    echo $subarray['wantedkey'];
}

没有直接回答您的原始问题,因为它没有使用
数组\u walk\u递归
,但它似乎可以以较低的复杂性完成您的要求。我误解了吗?

我可能在这里也误解了一些东西,但为什么不直接讨论一下呢

foreach($myarray as $subarray) {
    echo $subarray['wantedkey'];
}

没有直接回答您的原始问题,因为它没有使用
数组\u walk\u递归
,但它似乎可以以较低的复杂性完成您的要求。我误解了吗?

唯一的缺点是,如果
$subarray
不包含
'wantedkey'
,您会抛出异常。唯一的缺点是如果
$subarray
不包含
'wantedkey'
,您会抛出异常。抱歉,我忘了提到,如果我想以多维方式检查键是否相同,该怎么办:
$item['wantedkey1']['wantedkey2']
如何确保两个键都存在?抱歉,我忘了提到,如果我想以多维方式检查键是否相同:
$item['wantedkey1']['wantedkey2']
如何确保两个键都存在?