다차원 배열의 하위 배열에있는 특정 요소가 값과 같지 않은지 확인하고 다중 배열의 해당 값으로 배열을 설정 해제합니다. 나는 쉽게 구현할 수 있도록 함수를 만들었지 만 작동하지 않는 것 같습니다. 그것의 값과 멀티 어레이로부터 어레이 미 설정 "-"각 서브 어레이가있는 경우이 경우 다차원 배열의 특정 값으로 배열 설정 해제 하시겠습니까?
function multi_unset($array, $unset) {
foreach($array as $key=>$value) {
$arrayU = $array[$key];
$check = array();
for($i = 0; $i < count($unset); $i++) { // produces $array[$key][0, 2, 3]
array_push($check, $arrayU[$unset[$i]]);
}
if(in_array("-", $check)) {
unset($array[$key]);
}
}
return $array;
}
$arr = array(array("-", "test", "test", "test"), array("test", "test", "test", "test"));
$unset = array(0, 2, 3); // keys in individual arrays to check
multi_unset($arr, $unset);
print_r($arr); // Should output without $arr[0]
는, I는 검사하고있다. 하위 배열 (0, 2, 3)의 특정 키만 검사하지만 변경하지 않고 배열을 출력합니다. 나는 어떤 범위를 잘못 잡아야한다는 것을 알았고 가능하면 "글로벌"을 사용하려했지만, 그것을 수정하지는 않았다.
그래서'multi_unset ($ arr, $ unset);'은 $ arr에 실제로 아무것도하지 않습니다. 'multi_unset (& $ arr, $ unset);을 사용하여 리절 스하거나, 반환 값'$ arr = multi_unset ($ arr, $ unset);'을 사용하십시오. – ccKep
내 이전 코멘트에 추가하려면 : call-time refrence by refrence는 실제로 PHP 5.3.0에서 사용되지 않으며 5.4.0에서 제거되었습니다. – ccKep