多次元配列のサブ配列の特定の要素が値と等しくないことを確認し、マルチ配列からその値で配列を設定解除しています。これを簡単に実装できるように関数を作成しましたが、機能していないようです。
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]
この場合、各サブ配列に「-」値が含まれているかどうかを確認し、マルチ配列から配列の設定を解除しています。サブ配列(0、2、3)の特定のキーのみをチェックしていますが、変更なしで配列を出力します。スコーピングが間違っているに違いないと考え、可能な限り「グローバル」を使用しようとしましたが、それは修正されていないようでした。