다차원 배열은 어떻게됩니까? 이 솔루션에 대한 몇 시간 동안 연구를 해봤는데 아무데도 최적의 솔루션을 찾지 못했습니다. 예를
$array = [
'key1' => 'kw',
'loaa'=> ['looo'],
'k' => [
'prope' => [
'prop' => ['proo', 'prot', 'loolooo', 'de'],
'prop2' => ['hun' => 'lu'],
],
'prop1' => [
],
],
];
전화 : 예
allow_keys($array, ['key1', 'k' => ['prope' => ['prop' => [0, 1], 'prop2']]])
출력 :
Array ([key1] => kw [k] => Array ([prope] => Array ([prop] => Array ([0] => proo [1] => prot) [prop2] => Array ([hun] => lu))))
그래서 당신은 필요한 경우에만받을 키에서 그래서, 나는
function allow_keys($arr, $keys)
{
$saved = [];
foreach ($keys as $key => $value) {
if (is_int($key) || is_int($value)) {
$keysKey = $value;
} else {
$keysKey = $key;
}
if (isset($arr[$keysKey])) {
$saved[$keysKey] = $arr[$keysKey];
if (is_array($value)) {
$saved[$keysKey] = allow_keys($saved[$keysKey], $keys[$keysKey]);
}
}
}
return $saved;
}
사용 혼자 쓴 다차원 배열 그것은 단지 당신이 얻을 "다차원"당신이
['key1', 'loaa']
출력과 같은 배열을 전달하여 사용할 수에 대한 제한되지 않습니다
Array ([key1] => kw [loaa] => Array ([0] => looo))
환호!
음,이 예제에서 내가 뭘 잘못하고 있습니까? http://codepad.viper-7.com/mhJ0WK – sed
@Qmal :'$ good'은 * values *처럼 좋은 이름을 가지고 있고,'$ post'는 * keys *처럼 있습니다. 가장 간단한 수정은'$ good' 대신에'array_flip ($ good)'을 전달하여 두 입력 모두가 좋은 이름을 갖도록하는 것입니다. – Jon
이제 작동합니다. 감사. – sed