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 關注
- 158 瀏覽
添加回答
舉報