문제
나는 이 질문은 이전에 그는 결론을 내렸다 그것이 버그에서 5.2.5.만,그것은 여전히 깨어진에 5.2.6,적어도에 대한 저:
알려 주시기 바랍니다면 그것은 깨지거나 당신을 위해 작동:
$obj = new stdClass();
$obj->{"foo"} = "bar";
$obj->{"0"} = "zero";
$arr = (array)$obj;
//foo -- bar
//0 -- {error: undefined index}
foreach ($arr as $key=>$value){
echo "$key -- " . $arr[$key] . "\n";
}
어떤 방법으로"수정"배열한 후에는 캐스팅에서 stdClass?
다른 팁
실험의 비트를 보여줍 phps 자신의 기능을 유지되지 않 이 fubarity.
function noopa( $a ){ return $a; }
$arr = array_map('noopa', $arr );
$arr[0]; # no error!
이에 효과,그냥 복사본을 만들의 배열과정 중에 발생합 복사합니다.
궁극적으로,그것은 디자인에 실패,전반적으로 사용하여 시험 array_merge 에서 당신이 생각하는 방식 그것은 작품에서 배열과 혼합된 숫자 및 문자열 키?
번호가 매겨진 모든 요소로 복사되고 일부는 다시 번호는 경우에도,일부 단순히 될 일이 문자열을 캡슐화 번호,결과적으로 수십 가지의 세부 항목이 포함되어 있 브루의 구현 array_merge 만이 문제를 해결합니다.
다시 때 php 를 만들기 위해 노력했 복제의 펄 못했고,그들은 개념을 파악하지 않 배열의 표시는 다른 개념,instead globbed 으로 그들을 함께 하나의 보편적인 우산입니다.좋은니다!
그 다음에는 그들이 휴식을 관리하는 네임스페이스 구분하기 때문에 일부의 기술적인 문제는 다른 언어에는 몇 가지 이유가 발생했습니다.
감사 RoBorg..나는 그냥 발견 뿐만 아니라:)
여기에서 다른 솔루션을 확실하지 않다면 그것은 더 빠르 또는 아닙니다:
unserialize(serialize($arr));
제휴하지 않습니다 StackOverflow