Извините, если этот вопрос сформулирован неправильно или не имеет никакого смысла. То, что я пытаюсь сделать, это написать оператор if, который проверяет:
array(6) {
[5]=>
string(17) "Quality Assurance"
[6]=>
string(7) "Analyst"
[7]=>
string(19) "Developer/Front end"
[8]=>
string(18) "Developer/Back end"
[9]=>
string(4) "Test"
[10]=>
string(2) "hi"
}
Любой из этих ключей, в данном случае, 5, 6, 7, 8, 9, 10 находится в:
array(4) {
[0]=>
object(stdClass)#195 (2) {
["labour_type_id"]=>
int(5)
["required_labour_type_hours"]=>
int(40)
}
[1]=>
object(stdClass)#193 (2) {
["labour_type_id"]=>
int(6)
["required_labour_type_hours"]=>
int(80)
}
}
Это второй массив "labour_type_id".
В этом примере будут соответствовать 5 и 6.
Я пытаюсь использовать функцию in_array(), но я не уверен, как получить доступ к labour_type_id второго массива.
Моя лучшая попытка на данный момент:
@foreach($labourTypes as $id => $name)
@if(in_array($id, $reqLabourTypes->labour_type_id))
Где labourTypes - первый массив, а reqLabourTypes - это второй массив.
Благодарю.
Я очистил этот маленький поиск, чтобы попытаться найти его, как вам нужно:
$new = array_filter(array_map(function(&$item) use($requiredLabour, $labourTypes){
$key = array_search($item, $labourTypes);
foreach($requiredLabour as $elem){
if($elem['labour_type_id'] == $key) {
return array(
$key => $item,
'options' => $elem
);
}
}
}, $labourTypes));
Все будет доступно в $new
если будет найдено. Он возвращает:
Array
(
[5] => Array
(
[5] => Quality Assurance
[options] => Array
(
[labour_type_id] => 5
[required_labour_hours] => 40
)
)
[6] => Array
(
[6] => Analyst
[options] => Array
(
[labour_type_id] => 6
[required_labour_hours] => 40
)
)
)
Вышеизложенное является только выходом, вы можете изменить его на все, что вам нужно, просто отредактировав return array(.....
внутри, что вам нужно.