我想插入id的值$courseCat,如果這個ID是不存在的$m。在下面的代碼,我覺得$m陣列是越來越空,每次等等,所有的ID是越來越插入到$m,作為結果dump($m)indicates.How我可以修復這?
$m=[];
$courseCat = MyCourse::where('course_id', $key['courseId'])->get()->toArray();
foreach($courseCat as $k=>$c){
// dump($courseCat);
if(!in_array($c['id'],$m)){
array_push($m,$c['id']);
}
}
//dump($m);
dump($courseCat); 顯示以下結果
array:2 [
0 => array:19 [
"id" => 2
"course_id" => 18
]
1 => array:19 [
"id" => 3
"course_id" => 18
]
]
array:2 [
0 => array:19 [
"id" => 2
"course_id" => 18
]
1 => array:19 [
"id" => 3
"course_id" => 18
]
]
array:2 [
0 => array:19 [
"id" => 5
"course_id" => 1
]
1 => array:19 [
"id" => 6
"course_id" => 1
]
]
array:2 [
0 => array:19 [
"id" => 5
"course_id" => 1
]
1 => array:19 [
"id" => 6
"course_id" => 1
]
]
dump($m) 顯示以下結果:
array:2 [
0 => 2
1 => 3
]
array:2 [
0 => 2
1 => 3
]
array:2 [
0 => 6
1 => 5
]
array:2 [
0 => 6
1 => 5
]
下面附上的圖片是查詢的結果MyCourse::where('course_id', $key['courseId'])->get()。
[在此處輸入圖片說明] 1
[在此處輸入圖片說明] 2
[在此處輸入圖片說明] 3
預期結果 :
dump($m) 應該顯示以下結果
[0=>2,
1=>3,
2=>5,
3=>6]
uj5u.com熱心網友回復:
我認為這是因為您有一個未在問題中顯示的外回圈。您需要$m在外回圈之前宣告:
$m=[];
foreach($keys as $key){
$courseCat = MyCourse::where('course_id', $key['courseId'])->get()->toArray();
foreach($courseCat as $k=>$c){
if(!in_array($c['id'],$m)){
array_push($m,$c['id']);
}
}
}
dump($m);
uj5u.com熱心網友回復:
如果您想要查詢中列的所有值,您可以使用pluck:
MyCourse::where('course_id', $key['courseId'])->pluck('id')
現在你有一個所有“id”的串列。
Laravel 8.x 檔案 - 資料庫 - 運行資料庫查詢 - 檢索列值串列 pluck
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/403660.html
標籤:
