Я немного новичок в многомерных массивах и хотел бы посмотреть, правильно ли я делаю это. желательно, я хотел бы назвать массивы в основном массиве для удобства использования.
$unique_array = array( username=>array(), user_id=>array(), weeknumber=>array() );
и затем у меня есть цикл while, который проверяет некоторые результаты базы данных:
while($row = mysql_fetch_array($query)) //yes, I know mysql is deprecated { $unique_array[] = username=>$row['username'], user_id=>$row['user_id'], week number=>['weeknumber']; }
Я не уверен, правильно ли размещаю значения в массиве из цикла while, или если это нужно сделать другим способом. Я не мог найти никаких ресурсов, которые я мог бы легко понять в SO или где-либо еще, чтобы иметь дело с результатами запроса в именованном массиве в многомерном массиве.
ИЗМЕНИТЬ СЛЕДУЮЩИЙ ВОПРОС: Мне также нужно проверить массив на повторяющиеся значения, потому что будет несколько значений, которые будут точно такими же, но я хочу только одного из них.
Любая помощь приветствуется!
РЕДАКТИРОВАТЬ РЕШЕНИЕ:
Изменив ответ, я смог создать код, соответствующий моим потребностям.
Инициализация массива:
$unique_array = array( 'username'=>array(), 'user_id'=>array(), 'weeknumber'=>array() );
Построение массива из цикла while:
while($row = mysql_fetch_array($query)) { $unique_array[] = array('username'=>$row['username'], 'user_id'=>$row['user_id'], 'weeknumber'=>$row['weeknumber']); }
И, наконец, мне нужно убедиться, что значения массива уникальны (есть записи дубликатов в результате ограничений базы данных и запросов), после цикла while у меня есть:
print_r(multi_unique($unique_array));
Является ли верхний уровень ассоциативным массивом или числовым массивом?
Если это ассоциативный массив, он должен иметь такую структуру:
$unique_array = array( 'username'=>array('John','Mike',...), 'user_id'=>array(1,2,3,...), 'week_number'=>array(1,2,3,...) );
Или, если это числовой массив, он должен иметь такую структуру:
$unique_array = array( array('username'=>'John', 'user_id'=>1, 'week_number'=>1), array('username'=>'Mike', 'user_id'=>2, 'week_number'=>2), array('username'=>'Sam', 'user_id'=>3, 'week_number'=>3), ... )
для первого типа используйте следующий код:
while ($row = mysql_fetch_assoc($query)) { $unique_array['username'][] = $row['username'], $unique_array['user_id'][] = $row['user_id'], $unique_array['week_number'][] = $row['week_number'], }
для второго типа это что-то вроде вашего кода. Но есть некоторые проблемы с синтаксисом:
while($row = mysql_fetch_array($query)) //yes, I know mysql is deprecated { $unique_array[] = array('username'=>$row['username'], 'user_id'=>$row['user_id'], 'week_number'=>$row['weeknumber']); }