2017-02-10 13 views
0

$hasilからの私のアレイは、私がこのようなデータベースでは、このストア配列は

$newArray = array(); 
    $i = 0; 
    foreach ($hasil as $key => $value) { 
     $newArray[$i] = $key . '|' . $value; 
     $i++; 
    } 

    for ($i = 0; $i < sizeof($newArray); $i++) { 
     for ($j = 0; $j < sizeof($newArray) - 1; $j++) { 
     $n1 = explode("|", $newArray[$j]); 
     $n2 = explode("|", $newArray[$j+1]); 

     if (doubleval($n1[1]) < doubleval($n2[1])) { 
      $temp = $newArray[$j]; 
      $newArray[$j] = $newArray[$j + 1]; 
      $newArray[$j + 1] = $temp; 
     } 
     } 
    } 

    $idObjeks = array(); 
    $i = 0; 
    foreach ($newArray as $key) { 
     $ex1 = explode("|", $key); 
     $ex2 = explode(",", $ex1[0]); 
     foreach ($ex2 as $ky) { 
     $idObjeks[$i] = $ky; 
     $i++; 
     } 
    } 

    $hasil = array(); 
    foreach ($newArray as $key) { 
     $ex = explode("|", $key); 
     $hasil[$ex[0]] = $ex[1]; 
    } 

    // I think wrong in this code *** 
    // I want save $hasil with the biggest or the biggest with same value in database 
    // when I print_r there are not the same value and the biggest value 
    $sameValue = array(); 
    for ($i = 0; $i < sizeof($hasil) - 1; $i++) { 
     if (current($hasil) == next($hasil)) { 
     $sameValue[$i]['key'] = key($hasil); 
     $sameValue[$i]['value'] = current($hasil); 
     $sameValue[$i+1]['key'] = key($hasil); 
     $sameValue[$i+1]['value'] = next($hasil); 
     } else { 
     prev($hasil); 
     $sameValue[$i]['key'] = key($hasil); 
     $sameValue[$i]['value'] = current($hasil); 
     break; 
     } 
    } 

や店舗のようにしてみてくださいよ、この

Array ([24] => 0.29883576167978 [20] => 0.29883576167978 [20,24] => 0.17930145700787 [34] => 0.12390406380914 [26,34] => 0.099123251047315) 

のようなものです。

$hasilInsert = array(); 
    foreach ($sameValue as $key => $value) { 
     $hasilInsert = array(
     'id_wi' => $wisatawan->id, 
     'hasil' => $value['key'], 
     'nilai' => $value['value'] 
     ); 
     $xy = HasilWisataTemp::insert($hasilInsert); 
    } 

このコードで何が問題になっていますか?または、データベースに同じ値の配列を格納する簡単な方法はありますか?私は配列をちょうど同じ値で保存したいからです。

ありがとうございました。

+0

を保存 – Chris

+0

アレイを同じ値に保存するにはどうすればいいですか? –

+0

あなたはあなたが試したものと何が失敗したものかを表示できますか? – Chris

答えて

1

は充填可能なアレイ内のすべてのそれらの属性を入れ

$xy = HasilWisataTemp::create([ 
    'id_wi' => $wisatawan->id, 
    'hasil' => $value['key'], 
    'nilai' => $value['value'] 
]); 

を試してみてください。

protected $fillable = [ 
    'id_whi', 'hasil', 'nilai' 
]; 

更新 フォーマットと、あなたの質問は何ですか?配列

$arr = [ 
    [24] => 0.29883576167978, 
    [20] => 0.29883576167978 
]; 

foreach($arr as $key => $value) { 
    HasilWisataTemp::create([ 
     'id_wi' => $wisatawan->id, 
     'hasil' => $value['key'], //24... 20 
     'nilai' => $value['value'] // 0.29883576167978.... 0.29883576167978 
    ]); 
} 
+0

エラー 'Model.php行のMassAssignmentException 452: id_wi' –

+0

回答の更新を確認してください – EddyTheDove

+0

同じ値を持つ配列を見つけると、間違ったロジックだと思います。配列を格納するときではありません。 –

関連する問題