remover nula a partir de uma matriz

votos
0

Eu quero importar CSV para banco de dados, como sempre eu tenho esse erro: Código: array_combine ErrorException (): Ambos os parâmetros devem ter o mesmo número de elementos que eu sei que o erro mostra que as duas matrizes Arent no mesmo comprimento como sempre eu não poderia encontrar uma solução para remover o valor nulo de uma matriz

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Accounts;
class AccountController extends Controller
{
    public function show(){
        return view ('upload');
    }
    public function store(Request $request){


        $file = $request->file('upload-file');
        $csvData = file_get_contents($file);

        $rows = array_map(str_getcsv, explode(\n, $csvData));

        dd($rows);
        $header = array_shift($rows);

        foreach ($rows as $row) {


            $row = array_combine($header, $row);



            set_time_limit(0);
            Accounts::create([
                'AccountClass' => $row['Classe'],
                'AccountNumber' => $row['Compte'],
                'AccountDesc' => $row['Desc'],
                'active' => 1,
            ]);
        }

        return view ('home');

    }

}

Resultado: cabeçalho:

array:3 [▼
  0 => Classe
  1 => Compte
  2 => Desc
]

linhas:

   array:4 [▼
      0 => array:3 [▼
        0 => 1
        1 => 1
        2 => COMPTES DE FINANCEMENT PERMANENT
      ]
      1 => array:3 [▼
        0 => 1
        1 => 11
        2 => CAPITAUX PROPRES
      ]
      2 => array:1 [▼
        0 => null
      ]
    ]

Mas eu quero

   array:4 [▼

          0 => array:3 [▼
            0 => 1
            1 => 1
            2 => COMPTES DE FINANCEMENT PERMANENT
          ]
          1 => array:3 [▼
            0 => 1
            1 => 11
            2 => CAPITAUX PROPRES
          ]
        ]

Qualquer conselho muito apreciada.

Publicado 24/10/2019 em 12:53
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Experimentar

$res = [];
foreach($x as $key => $value)
{
if($value[0] == null)
unset($x[$key]);
else
$res[$key] = $value;
}
print_r($res);

Saída será

Array
(
[0] => Array
    (
        [0] => 1
        [1] => 1
        [2] => COMPTES DE FINANCEMENT PERMANENT
    )

[1] => Array
    (
        [0] => 1
        [1] => 11
        [2] => CAPITAUX PROPRES
    )

)
Respondeu 24/10/2019 em 13:03
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more