如果我使用$resultado_frontend
来更改array_filter
,它只会在函数内部对其进行更改,如果尝试在$resultado_frontend
之后访问array_filter
,则它是一个空数组。
$resultado_frontend = [];
$contas_b2w = array_filter($contas->toArray(), function($conta) use($id_admin, $resultado_frontend, $json_tiao) {
if($conta['id_mkt'] == 3){
$sku_existe = Anuncio::where([['id_admin', $id_admin], ['conta_id', $conta['id']]])->where('json_jcontrole->sku', $json_tiao['sku'])->first();
if($sku_existe){
$resultado_frontend[] = ["essa conta já possui o sku cadastrado para este marketplace"];
dd($resultado_frontend); // here the string is inserted into the array
}else{
return $conta;
}
}
});
dd($resultado_frontend); //If a remove the "dd" inside the closure and let code reach this "dd", the array will be empty. How can I get around this?
答案 0 :(得分:0)
我不确定确切的总体目标是什么,因此可能有更好的方法来实现,但是如果要在闭包内部修改$resultado_frontend
,则需要use
引用它,否则它将按值传递到闭包中。
... use($id_admin, &$resultado_frontend, $json_tiao) { ...