알 수없는 구조의 깊게 중첩 된 배열에서 요소 양식을 제거해야합니다 (예 : 요소를 설정 해제하기 위해 요소를 처리하기 위해 키 시퀀스가 무엇인지 알 수 없음). 그러나 제거하고있는 요소에는 일관된 구조체 (stdObject)가 있으므로 전체 다차원 배열을 검색하여 찾을 수는 있지만 제거해야합니다. 이 일을 성취하는 방법에 대한 생각?다차원 배열에서 깊이 중첩 된 요소를 제거 하시겠습니까?
편집 : 이것은 내가 지금 달성하려고하는 기능입니다.
function _subqueue_filter_reference(&$where)
{
foreach ($where as $key => $value) {
if (is_array($value))
{
foreach ($value as $filter_key => $filter)
{
if (isset($filter['field']) && is_string($filter['field']) && $filter['field'] == 'nodequeue_nodes_node__nodequeue_subqueue.reference')
{
unset($value[$filter_key]);
return TRUE;
}
}
return _subqueue_filter_reference($value);
}
}
return FALSE;
}
EDIT # 2 : var_dump
에서 배열 구조체의 잘린.
- 필드
- 값 그래서이 전체 구조
$array
할당된다고 가정
는 ..., I를 제거하는 데 필요한 요소는 타겟 세 필드 배열 인array (size=1) 1 => array (size=3) 'conditions' => array (size=5) 0 => array (size=3) ... 1 => array (size=3) ... 2 => array (size=3) ... 3 => array (size=3) ... 4 => array (size=3) ... 'args' => array (size=0) empty 'type' => string 'AND' (length=3)
$array[1]['conditions'][4]
인 - 연산자
... 모두 문자열 값입니다. 이 문제를 해결하기 위해
http://stackoverflow.com/questions/369602/delete-an-element-from-an-array?rq=1 –
나는 이미 이것을 읽었으며 내 질문에 답하지 않습니다. 깊게 중첩 된 요소에 대한 정확한 키 시퀀스를 알고 있다면'unset '을 사용하는 것이 쉽지만, 그렇지 않습니다. –
당신은 그것을 검색해야한다는 것을 알고 있습니다. 그래서 그것을 발견했을 때 사용하지 않는 것이 좋습니다. –