php路径嵌套引用,在PHP的嵌套关联数组中搜索值并返回其路径

我正在尝试在PHP的嵌套关联数组中搜索值,就像array_search但嵌套的一样.我需要所有导致该特定值的键.

我在SO上没有看到任何关于此特定功能寻求帮助的信息,所以现在我要询问.其他示例似乎返回数组中的所有值,而不仅仅是返回单个键/值对的路径.

解决方法:

function array_search_path($needle, array $haystack, array $path = []) {

foreach ($haystack as $key => $value) {

$currentPath = array_merge($path, [$key]);

if (is_array($value) && $result = array_search_path($needle, $value, $currentPath)) {

return $result;

} else if ($value === $needle) {

return $currentPath;

}

}

return false;

}

$arr = [

'foo' => 'bar',

'baz' => [

'test' => 42,

'here' => [

'is' => [

'the' => 'path'

]

],

'wrong' => 'turn'

]

];

print_r(array_search_path('path', $arr));

// Array

// (

// [0] => baz

// [1] => here

// [2] => is

// [3] => the

// )

标签:php,arrays,recursion

来源: https://codeday.me/bug/20191011/1889542.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值