检查php中两个或多个数组中是否存在值

时间:2018-04-22 09:37:04

标签: php

您好,我有这个问题: 我的控制器上有这个:

setProperty

输出这个:

 $questions = Question::select('text','question_image','question_type_id','id')
                                ->whereIn('id', $question_ids)
                                ->where('deleted', 0)
                                ->orderBy('created_at','ASC')
                                ->paginate(20); 

然后我有了这个:

LengthAwarePaginator {#1635 ▼
  #total: 4
  #lastPage: 1
  #items: Collection {#1627 ▼
    #items: array:4 [▼
      0 => Question {#1622 ▼
        #hidden: array:1 [▶]
        #fillable: array:10 [▶]
        #connection: "mysql"
        #table: null
        #primaryKey: "id"
        #keyType: "int"
        +incrementing: true
        #with: []
        #withCount: []
        #perPage: 15
        +exists: true
        +wasRecentlyCreated: false
        #attributes: array:4 [▼
          "text" => "asd"
          "question_image" => null
          "question_type_id" => 5
          "id" => 1213
        ]
        #original: array:4 [▶]
        #changes: []
        #casts: []
        #dates: []
        #dateFormat: null
        #appends: []
        #dispatchesEvents: []
        #observables: []
        #relations: []
        #touches: []
        +timestamps: true
        #visible: []
        #guarded: array:1 [▶]
      }
      1 => Question {#1623 ▶}
      2 => Question {#1624 ▶}
      3 => Question {#1625 ▶}

哪个输出:

$owner_questions = BankQuestion::select('question_id')->where('bank_id', $bank_id)->where('user_id',  $auth)->where('deleted', 0)->get()->toArray();

在这里,我有循环的问题:

array:2 [▼
  0 => array:1 [▼
    "question_id" => 1217
  ]
  1 => array:1 [▼
    "question_id" => 1218
  ]
]

在这里,我需要找到 foreach ($questions as $question) { if(in_array($question->id, $owner_questions )){ $question->authorQuestion = 1; }else{ $question->authorQuestion = 0; } } 数组中存在的$question->id,其中我要查找的数字是1217和1218.有人可以请帮助我,我在这里做错了。 ?

1 个答案:

答案 0 :(得分:0)

您正在将数值($ question-> id)与数组进行比较,该数组具有属性question_id。您可以这样做:

$owner_questions_ids = array();
foreach($owner_questions as $owner_question){
    $owner_questions_ids[] = $owner_question['question_id'];
}

// now you can compare them
in_array($question->id,  $owner_questions_ids )