2016-05-11 8 views
0

Ich verwende Laravel und ich bekommen ein Array aus der Sicht, wo der Eingang I wird durch Punkt getrennt wollen Ich habe diesen Code:Foreach-Schleife kehrt erst letzte Wert

$addedskills = Input::get('addskills'); //array of values sep by period 
    $addedskillsarray=explode(".",$addedskills); //gettin each value 
    //array_slice() to remove the first element of the array bcz it's empty 
    foreach(array_slice($addedskillsarray, 1) as $addnewskills) 
     $skills = new Skill(); 
     $skills->skill_name = $addnewskills; 
     $user->skills()->save($skills); 
    } 

// Javascript

$(document).ready(function(){ 
    $("#addlanguages").val(""); 
    $("#addskills").val(""); 
    $("#btnaddskills").click(function(){ 
     var skilltxt=$("#slctskill").val(); 
     $("#addbtnskill").append('<button name="newskill" type="button" class="btn lng-btn">'+skilltxt+'<span class="badge badge-danger custom-badge"><i class="fa fa-close"></i></span></button>'); 
     $("#addskills").val(inputvalueskills+'.'+skilltxt); 
     var inputvalueskills=$("#addskills").val(); 
    }); 
}); 

Das Problem ist, es gibt hier versuchen Sie nur den letzten Wert des Arrays

+0

Können Sie ein repräsentatives Beispiel für Ihre $ addedskillsarray zeigen? – zoubida13

+0

was @oubida13 sagte Plus Ich würde den array_slice Aufruf aus der Schleife für eine bessere Lesbarkeit bewegen –

+0

@ zoubida13 Ich benutze dieses Skript, um den Wert zu erhalten, die an eine versteckte Eingabe übergeben werden –

Antwort

0

Warum nicht array_filter

$addedskills = Input::get('addskills'); 
    $addedskillsarray= array_filter(explode(".",$addedskills)); 

    foreach($addedskillsarray as $addnewskills) 
     $skills = new Skill(); 
     $skills->skill_name = $addnewskills; 
     $user->skills()->save($skills); 
    }