Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> переформировать массив, из одного массива сделать другой 
:(
    Опции темы
jkffdwitnas
Дата 8.6.2010, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



добрый день, господа программисты
не сочтите за труд, подскажите как быть

есть такой массив
Код

$query='SELECT s.id, s.paramid, p.title, s.value FROM ...';
$db->setQuery($query);
$shorts = $db->loadAssocList('id');

Array
(
    [15] => Array
        (
            [id] => 15
            [paramid] => 19
            [title] => Р’идеокарта
            [value] => Р˜РЅС‚егрированная
        )
    [1] => Array
        (
            [id] => 1
            [paramid] => 13
            [title] => Р”исплей
            [value] => 11-12
        )
    [2] => Array
        (
            [id] => 2
            [paramid] => 13
            [title] => Р”исплей
            [value] => 15-17
        )
    [6] => Array
        (
            [id] => 6
            [paramid] => 16
            [title] => РћР±СЉС‘Рј оперативной памяти
            [value] => 2Gb
        )
)

тут у элементов встречается такая ситуация, paramid и title одинаковые, а value разные (id для результирующего массива не имеет значение)

нужно получить отсюда примерно такой массив
Код

$res = array('title1' => array('value11', 'value12', ...), 'title2' => array('value21', 'value22', ...), ...);

смысл простой:  одному 'title' соответствует набор (массив) значений 'value' 
или по-другому: одному paramid соответствует только одно значение title(так уже есть), и этой паре соответствует несколько value

как реализовать? всю голову сломал

Спасибо
PM MAIL WWW   Вверх
patap
Дата 8.6.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



не проверял на работоспособность )) 
$data - результат работы запроса
Код

  while ($item = $data->fetch_object()) {
    if (!is_array($result[$item->paramid])) {
      $result[$item->paramid] = array();
    }
    array_push($result[$item->paramid], $item->value);
  }




а, чуть тупанул, вот скорее всего так
Код

  while ($item = $data->fetch_object()) {
    if (!is_array($result[$item->paramid])) {
      $result[$item->paramid] = array('title' => $item->title, 'value' => array());
    }
    array_push($result[$item->paramid]['value'], $item->value);
  }


Это сообщение отредактировал(а) patap - 8.6.2010, 13:06


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
jkffdwitnas
Дата 8.6.2010, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



Fatal error: Call to a member function fetch_object() on a non-object
Код

$db= JFactory::getDBO();
$query='SELECT s.id, s.paramid, p.title, s.value FROM ...';
$db->setQuery($query);
$shorts = $db->loadAssocList('id');

говорит $shorts  не объект
+ не могу постичь сам код, тут получится несколько записей с одинаковым 'title' и одинаковым набором 'value' 

Это сообщение отредактировал(а) jkffdwitnas - 8.6.2010, 13:17
PM MAIL WWW   Вверх
jkffdwitnas
Дата 8.6.2010, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.10.2009

Репутация: нет
Всего: нет



все правильно в принципе, переписал только, все работает спасибо
Код

foreach ($shorts as $s) {
    if (!is_array($res[$s['title']])) {
      $res[$s['title']] = array();
    }
    array_push($res[$s['title']],$s['value']);
  }

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.