Intereting Posts

PHP foreach loop для создания массива

Я пытаюсь создать массив с такой структурой:

Array ( [2] => Array //this is the user's unique ID ( [name] => Jack [location] => Somerville, Massachusetts, United States [cars] => Array ( [10] => Toyota //this is the car's unique ID [11] => Porsche ) ) [5] => Array ( [name] => Luke [location] => Schwelm, North Rhine-Westphalia, Germany [cars] => Array ( [1] => Honda [2] => VW [5] => Maserati ) ) [1] => Array ( [name] => Jabba [location] => Denver, Colorado, United States [cars] => Array ( [3] => Tesla ) ) ) 

Я использую этот цикл foreach но я застрял в создании массива cars встроенного в массив search data .

У каждого пользователя может быть более одного автомобиля, поэтому мне нужно будет пропустить все машины для каждого пользователя, сгенерировать этот массив и поместить его в исходный цикл foreach .

  $search_data = array(); foreach ($query->result() as $row) { $search_data[$row->id] = array( 'name' => $row->name, 'location' => $row->location, 'cars' => array($row->car_id), //this is where I need to insert another array ); } return $search_data; 

Любые предложения, как это сделать?

Спасибо за помощь!

ДАННЫЕ ТАБЛИЦЫ ОБРАЗЦОВ

 USER NAME LOCATION CARS 2 JACK A TOYOTA 2 JACK A PORSCHE 5 LUKE B HONDA 5 LUKE B VW 5 LUKE B MASERATI 1 JABBA C TESLA 

Кажется, что вы создаете массив через таблицу базы данных. Так что, пожалуйста, дайте две или более выборочных данных. будет легче дать ответ, если имеются данные образца.

Редактировать: Ну, это может быть не лучший код, но я думаю, что вы сможете найти лучший способ, увидев это

 $id = $row['id']; if (!isset($search_data[$id])){ $search_data[$id] = array(); } $search_data[$id]['name'] = $row['name']; $search_data[$id]['location'] = $row['location']; if (isset($search_data[$id]['cars'])) { array_push($search_data[$id]['cars'],$row['cars']); }else{ $search_data[$id]['cars'] = array($row['cars']); //this is where I need to insert another array }