У меня есть json-объект в моем php-скрипте, который был закодирован с использованием функции php json_encode
.PHP JSON Количество значений в одном массиве
Вот объект, когда var_dumped ...
string '{"voting_sys":"50","beta_site":"50"}' (length=36)
string '{"voting_sys":"50","beta_site":"50"}' (length=36)
структура базы данных:
Моя цель состоит в том, чтобы получить сумму значений в voting_sys для каждого пользователя, и в beta_site. ..Это будет использоваться для голосования, но по неизвестному количеству функций/значений.
Любые идеи? Я пробовал следующее ...
$voters = DB::table('votes')->get();
foreach($voters as $vote){
$vote_array[$voter->user_id]=json_decode($voter->value, true);
}
var_dump($vote_array);
Это возвращает декодированный json-объект в массив. Я бы назначил «vote_sys» в качестве ключа для массива, а затем целочисленное значение для значения массива, но будет неизвестное количество функций. В этом примере есть только две функции, которые пользователи могут проголосовать, но может быть и больше на более позднем этапе. Я использую идентификатор функции для развертывания нового набора функций, на которые могут голосовать пользователи.
Я использую Laravel 4.1
[Edit: Результат]
$feature_list = DB::table('features')->where('rev_id', Config::get('app.beta_rev'))->get();
$feature_array=array();
foreach ($feature_list as $feature){
array_push($feature_array, $feature->name);
}
foreach($feature_array as $feature){
$voters = DB::table('votes')
->select(DB::raw('sum(value)'))
->where('feature_name', '=', $feature)
->get();
echo $feature.' - ';
var_dump($voters);
echo '<br />';
}
, которые при вызове, отвалов:
voting_sys -
array (size=1)
0 =>
object(stdClass)[248]
public 'sum(value)' => string '149' (length=3)
beta_site -
array (size=1)
0 =>
object(stdClass)[249]
public 'sum(value)' => string '69' (length=2)
который является точно правильным для голосов я введенными. Спасибо за помощь.
он использует laravel – underscore
Это не должно иметь значения. Каждая платформа/ORM позволяет создавать пользовательские запросы. – Dragony
С одной стороны, функции определены в отдельной таблице базы данных, поэтому зачем их переопределять здесь? Я использую идентификатор функции в своих конфигурационных файлах приложения для развертывания новых наборов функций, а также добавляю новые функции в базу данных, меняю конфигурацию, и пользователи могут начать голосование по новым функциям. –