3 回答
TA贡献1817条经验 获得超6个赞
一种选择是array_filter用于循环遍历数组,并且仅包括包含$search字符串的子数组。使用array_keys提取的关键。
$aPermissions = [
'read' => [
'show'
],
'update' => [
'edit',
'editProfilePicture'
]
];
$search = 'edit';
$result = array_keys(array_filter($aPermissions, function( $o ) use ( $search ) {
return in_array( $search, $o );
}));
$result 将导致:
Array
(
[0] => update
)
TA贡献1744条经验 获得超4个赞
您可以使用array_walk和in_array获取key,没有返回类型数组,只是简单的键名,否则为null
$aPermissions = [
'read' => [
'show'
],
'update' => [
'edit',
'editProfilePicture'
]
];
$searchAction = 'show';
$keyFound = '';
array_walk($aPermissions, function($value, $key) use ($searchAction, &$keyFound){
in_array($searchAction, $value) ? ($keyFound = $key) : '';
});
echo $keyFound;
输出
read
TA贡献1786条经验 获得超11个赞
假设键在第一级,值在第二级,则可以执行以下操作:
$innerKeys = [
"show",
"edit"
];
$output = [];
foreach ($array as $key => $value) {
if (is_array($value)) {
foreach ($value as $innerKey => $innerValue) {
if (isset($innerKeys[$innerKey])) $output[$innerKey] = $key;
}
}
}
如果您的问题更复杂,那么您将需要向我们提供其他信息。
- 3 回答
- 0 关注
- 134 浏览
添加回答
举报