supprimer null partir d'un tableau

voix
0

je veux importer des fichiers CSV à la base de données, comment jamais j'eu cette erreur: Code: ErrorException array_combine (): Les deux paramètres doivent avoir un nombre égal d'éléments que je sais que l'erreur montre que les deux tableaux ne coûtent pas la même longueur comment jamais je ne pourrais pas trouver une solution pour supprimer la valeur nulle à partir d'une matrice

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');

    }

}

Résultat: en-tête:

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

Lignes :

   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
      ]
    ]

Mais je veux

   array:4 [▼

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

Un conseil très apprécié.

Créé 24/10/2019 à 12:53
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Essayer

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

Sortie sera

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

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

)
Créé 24/10/2019 à 13:03
source utilisateur

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