#php #arrays #loops
#php #массивы #циклы
Вопрос:
У меня есть массив, который был заполнен данными по умолчанию, как показано ниже
$arrivals = array(
"source" => "arrivals",
"data" => array(
0 => array("flight"=>"000","scheduled"=>"0000","city"=>"Geneva","airline"=>"UAL","gate"=>"A00","status"=>"1","remarks"=>"BOARDING"),
1 => array("flight"=>rand(1,2000),"scheduled"=>randomTime(),"city"=>"Baltimore","airline"=>randomAirline(),"gate"=>"A7","status"=>"0","remarks"=>"")
)
);
Теперь я хочу создать тот же массив с данными из таблицы в цикле, используя те же идентификаторы, такие как «город», но с именами переменных.
Другая часть заключается в том, что первая часть массива «данные» — это число, которое, конечно, в цикле я могу использовать счетчик.
Проблема в том, что массив создается со статическим значением «»source» => «arrivals», для которого есть только одно значение для массива, а затем массивы «data».
Я хотел бы простой способ динамической настройки массива с несколькими записями, но с одним заголовком «source» => «поступления» и несколькими записями для «данных», т.Е. По одному элементу на запись, которую я извлекаю из своей таблицы
Спасибо
Комментарии:
1. Может быть полезно увидеть другой массив и пример того, какой конечный результат вы хотели бы получить
2. Что вы пробовали до сих пор? Где вы застряли?
Ответ №1:
Вы можете сделать это с foreach
помощью цикла в php после получения ваших данных.
// Get the data from your table source
$data = get_some_data();
$arrivals = [
'source' => 'arrivals',
'data' => []
];
foreach ($data as $city) {
$arrivals['data'][] = [
'flight' => $city['flight'],
'scheduled'=> $city['scheduled'],
'city' => $city['city'],
// etc.
];
}
В качестве альтернативы, если вы хотите назначить название города в качестве ключа массива в arrivals , вы можете заменить первую строку внутри цикла foreach на $arrivals['data'][$city['city']]
(или любой другой элемент массива, содержащий значение city).
Комментарии:
1. Спасибо за пример, теперь он очень хорошо работает с моими данными. Ваша помощь была очень признательна
2. @LeslieJarrett Отлично! Я рад, что смог помочь. Не могли бы вы отметить ответ как принятый? Спасибо!