다차원 배열 (회색/흰색 목록)과 재귀 적으로 교차하려고 시도 할 때 현재 PHP Catchable fatal error: Argument 2 passed to NUI::recArrInterKey() must be an array, string given
오류가 발생합니다.PHP 재귀 배열 교차 키 문자열 값 위로 넘어 가기
내가 알아낼 수없는 이유로 어떤 부분이 $foo['contact']['im']['provider']
섹션에 걸려있는 것처럼 보입니까? 여기
Array
(
[location] => false
[network_name] => false
[interests] => false
[last_name] => false
[url] => false
[significant_other] => false
[network_domains] => false
[contact] => Array
(
[im] => Array
(
[provider] => false
)
[email_addresses] => false
)
)
그리고
/**
* Recursive array intersect key
*/
private static function recArrInterKey(array $array1, array $array2)
{
$array1 = array_intersect_key($array1, $array2);
foreach ($array1 as $key => &$value)
{
if (is_array($value))
{
$value = self::recArrInterKey($value, $array2[$key]);
}
}
return $array1;
}
이 내가 기대하고 $array1
Array
(
[location] => Seattle
[occupation] => Developer
[network_name] => foo.network
[network_region] => foo.region
[interests] => coding
[last_name] => daniel
[url] => false
[id] => 4665228
[significant_other] => some girl
[network_domains] => false
[contact] => Array
(
[im] => Array
(
[provider] => aol
)
[phone] => Array
(
[provider] => at&t
)
[email_addresses] => [email protected]
)
)
이라고 말할 수 있습니다 방법을 사용하고 예를 들어 화이트리스트 배열 ($ 배열 2)의 이것으로 돌아 가기
-Array
(
[location] => Seattle
[occupation] => Developer
[network_name] => foo.network
[interests] => coding
[last_name] => daniel
[url] => false
[significant_other] => some girl
[network_domains] => false
[contact] => Array
(
[im] => Array
(
[provider] => aol
)
[email_addresses] => [email protected]
)
)
먼저 배열을 확인하십시오. –
잘 - 두 번째 매개 변수를 확인하지 마십시오 :'$ array2 [$ key]'- 이것은 배열이어야합니다. – Adidi
아주 좋은 지적입니다. +1 – ehime