как получить желаемый массив

84
18 марта 2022, 23:50

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

$query = db_select('webform_submitted_data', 'wsd'); 
            $query->leftJoin('webform_component', 'wc', 'wsd.cid = wc.cid'); 
            $query->leftJoin('webform_submissions', 'ws', 'wsd.sid = ws.sid'); 
            $query->fields('wsd', array('sid', 'cid', 'data')); 
            $query->fields('wc', array('form_key', 'cid',)); 
            $webformSubmittedData = $query->orderBy('sid')->execute(); 
             
            $submittedData = array();  
             
            foreach($webformSubmittedData as $data){ 
            $submittedData[] = array('sid' => $data->sid, $data->form_key => $data->data); 
            }

результат получается такой

Array ( [0] => Array ( [sid] => 74 [imya] => Биржан )

[1] => Array
    (
        [sid] => 74
        [familiya] => Мусаев
    )
[2] => Array
    (
        [sid] => 74
        [e_mail] => mbmaction@gmail.com
    )
[3] => Array
    (
        [sid] => 74
        [phone] => 87018001227
    )
[4] => Array
    (
        [sid] => 74
        [birthday] => 1984-12-27
    )
[5] => Array
    (
        [sid] => 74
        [gender] => 10
    )
[6] => Array
    (
        [sid] => 74
        [country] => KZ
    )

как получить такой вариант:?

Array ( [0] => Array ( [sid] => 74 [imya] => Биржан [familiya] => Мусаев [country] => KZ [e_mail] => mail@gmail.com и так далее по списку )

[1] => Array
    (
        [sid] => 75
        [familiya] => Иванов
        [familiya] => Александр
        [country] => KZ
        [e_mail] => mail@gmail.com
    )

Подскажите пожалуйста как значения объединить по sid

Answer 1

sid - я так понял общее для одной записи массива, если так то можно сделать вот так (взять его за ключ):

...
$submittedData = array(); 
foreach($webformSubmittedData as $data){
    $submittedData[ $data->sid ][ $data->form_key ] = $data->data;
}

результат должен быть такой

[75] => Array
    (
        [familiya] => Иванов
        [familiya] => Александр
        [country] => KZ
        [e_mail] => mail@gmail.com
    )
[76] => Array
    (
...
READ ALSO
Вывод разного контента в зависимости от страницы Yii

Вывод разного контента в зависимости от страницы Yii

Появилась задача: разделить контент в представлении по страницам

94
Длинный запрос или много коротких?

Длинный запрос или много коротких?

Всем добрый день, есть потребность взять данные с БД+- 1000 условий (перечень айди)

70
Не правильно добавляет количество в поле

Не правильно добавляет количество в поле

Пытаюсь понять в чем проблема но уже не могу сам, думал ограничить черезtoFixed, но как-то не вышло или я не так его прописал

119