微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP 致命错误:未捕获的类型错误:无法访问字符串上字符串类型的偏移量

如何解决PHP 致命错误:未捕获的类型错误:无法访问字符串上字符串类型的偏移量

我有这个错误。我不知道为什么。我的错误在第 348 行 (in_array)。我有 PHP 8,是为了这个吗? in_array 不起作用。我没有看到错误。当我将 $key 替换为 1 时,它有效,但变量无效。

这是我的咨询 sql

$sql="SELECT venta,sucursal,r.`rubro`,fecha
        FROM ventasiniva
        JOIN rubros r USING (idrubro)
        WHERE DATE(fecha) BETWEEN '$desde' AND '$hasta' ";

    if(strlen($idsucursal)>0){
        $sql.=" AND idsucursal in (".$idsucursal.") ";
    }
    if(strlen($idrubro)>0){
        $sql.=" AND r.idrubro in (".$idrubro.") ";
    }

    $respuesta=ConsultaAsociado($sql);

    $resultado['id']=$respuesta['id'];
    $resultado['mensaje']=$respuesta['mensaje'];
    $resultado['cantidad']=$respuesta['cantidad'];
    $resultado['datos']=columnaunico($respuesta,'sucursal');
    // $agrupado=agrupararray($respuesta,'fecha');
    // $resultado['datoslineal']=arraylineal($agrupado,'fecha','sucursal','venta');

    if(strlen($error)>0){
        $resultado=array("id" => 0,'mensaje'=>$error);
    }
    echo json_encode($resultado); 

这是我的功能

function columnaunico($array,$key) {
    $temp_array = array();
    $i = 0;
    $key_array = array();
   
    foreach($array as $val) {
        if (!in_array($val[$key],$key_array)) {
            $key_array[$i] = $val[$key];
            $temp_array[$i] =  str_replace(" ","_",$val);
        }
        $i++;
    }
    return array_column($temp_array,$key);
}

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。