#php #arrays
#php #массивы
Вопрос:
Я не уверен, что означают эти проблемы, поэтому любое предложение будет оценено.
foreach ($workerdata as $key => $value) {
$eductions = WorkerCategories::select('Worker_type')->where('Workertype_id','=',$value)->first();
$worker = $eductions->Worker_type;
$demo = array($worker);
print_r($demo);
$users['worker_category'] = $demo;
}
exit();
Вывод:
Array
(
[0] => Apartment Prepping
)
Array
(
[0] => Carpenter
)
Я хочу:
Array
(
[0] => Apartment Prepping
)
Array
(
[1] => Carpenter
)
Спасибо вам за это.
Комментарии:
1. Может быть, вы хотите использовать
$users['worker_category'][] = $worker;
вместо этого.
Ответ №1:
каждый раз, когда вы вызываете array($worker)
, это создает новый массив, который не имеет ничего общего с предыдущим, поэтому индекс остается 0
:
foreach ($workerdata as $key => $value) {
$eductions = WorkerCategories::select('Worker_type')->where('Workertype_id','=',$value)->first();
$users['worker_category'][] = $eductions->Worker_type; //push to array worker type.
}
exit();
print_r($users['worker_category']);
Array
(
[0] => Apartment Prepping
[1] => Carpenter
)
Ответ №2:
Внутри вашего массива цикла foreach($worker); создает новый массив за итерацию, в результате вы получаете [0] indexd массив.
Для решения этой проблемы вы должны установить значение индекса вручную. Смотрите приведенный ниже код.
$index=0;
foreach ($workerdata as $key => $value) {
$eductions = WorkerCategories::select('Worker_type')->where('Workertype_id','=',$value)->first();
$worker = $eductions->Worker_type;
$demo = array($index => $worker);
print_r($demo);
$users['worker_category'] = $demo;
}
exit();
Вывод:
Array
(
[0] => Apartment Prepping
)
Array
(
[1] => Carpenter
)
Ответ №3:
Первое, что мы должны сделать здесь
$workerdata = array_values($workerdata);
Таким образом, нам не нужно обращаться к базе данных так много раз. Только один запрос со всеми рабочими идентификаторами, которые у нас есть
$eductions = WorkerCategories::select(['Worker_type'])->whereIn('Workertype_id',$workerdata)->get();
Определите пустой массив для хранения ваших значений
$user = [];
затем просмотрите свои результаты
foreach($eductions as $eduction){
$user[] = $education->worker_category;
}
print_r($user);