[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменить значение в массиве
Kusss
При сборке массива, чтобы получить вот такой результат:
array (
'number' = 5,
'number2' = 10
)
приходиться вот так извращаться
while ($value = mysql_fetch_assoc($sql)) {
....
$array['number'] += $value['number'];
// И таких строк может быть больше
$array['number2'] += $value['number2'];
}
может есть другой подход ?

SUM(number) не подходит, так как задача другая

типо такого, только добавить значение
$array = array(
'number' => $value['number'],
'number2' => $value['number2'],
);
redreem
while ($value = mysql_fetch_assoc($sql)) {
foreach ($value as $k=>$v) {
$array[$k] = $v;
}
}
Kusss
redreem
не то , мне не нужно ВСЕ добавлять.

Давайте попробую по другому объяснить. Допустим мне нужно собрать информацию и добавить в этот массив количество.
Приходиться делать так. Проверять есть ли массив с информацией, и если нет добавлять данные, иначе только изменяем количество.
if (isset($info[$value['id']])) {
$info[$value['id']]['number'] += $value['number'];
$info[$value['id']]['fact'] += $value['fact'];
$info[$value['id']]['print'] += $value['print'];
$info[$value['id']]['basic'] += $value['basic'];
} else
$info[$value['id']] = array(
'name' => $value['name'],
'number' => $value['number'],
'fact' => $value['fact'],
ну и так далее ...
);
redreem
ну а так разве не будет прибавляться значение при наличии или добавляться запись при отсутствии?

while ($value = mysql_fetch_assoc($sql)) {
foreach ($value as $k=>$v) {
if (isset($array[$k])) {
$array[$k] += $v;
} else {
$array[$k] = $v;
}
}
}
Valick
Цитата (Kusss @ 11.03.2016 - 14:55)
приходиться вот так извращаться

а решить задачу на уровне SQL?

_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
про SQL SUM не слыхали ?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Kusss
Игорь_Vasinsky
не, не слышал .
Цитата (Kusss @ 11.03.2016 - 14:55)
SUM(number) не подходит, так как задача другая

Valick
не решается это в MySQL
redreem
мне нужно собрать только часть значений, зачем мне в массиве куча лишнего ?
И что будет с наименованием после этого ?
Valick
Цитата (Kusss @ 11.03.2016 - 22:05)
не решается это в MySQL

ну нет так нет, я уговаривать не буду

_____________
Стимулятор ~yoomoney - 41001303250491
redreem
Kusss

засунь нужные поля в массив и проверяй перед foreach через in_array
если еще что всплывет, то "вы извращенец, батенька".
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.