2013-04-11 2 views
0

Я пишу результат запроса базы данных к массиву row by row, затем добавляю свою собственную строку к последнему индексу массива. Я с помощью инструментов разработчика Google для просмотра результата массива, которые заключаются в следующем:Кодировки ассоциативного массива PHP

10: {strat_id:1, x_id:1, outcome_id:52, date:1364655600, status:0, rank:1,…} 
> 
strat_id: "1" 
status: "0" 
date: "1364655600" 
x_id: "1" 
outcome_id: "52" 
rank: "1" 

11: {strat_id:4, x_id:1, outcome_id:49, date:1365674916, status:1, rank:1,…} 
> 
strat_id: 4 
status: "1" 
date: 1365674916 
x_id: 1 
outcome_id: 49 
rank: 1 

символ «>» обозначает, где я расширил индекс. Индекс 10 является последней строкой из базы данных и, как вы можете видеть, когда расширенные значения окружают котировками. Индекс 11 - это данные, которые я добавил вручную, при расширении, поскольку вы можете видеть, что значения не окружены котировками (кроме «статуса»).

В интересах согласованности я должен беспокоиться об этой детали? Для того, чтобы добавить в массив Я использую:

$newarray=array("strat_id"=>$_POST['gridID']+1, "x_id"=>$_SESSION['xID'], "outcome_id"=>$_POST['cellID']+1, "date"=>time(), "status"=>$_POST['type'], "rank"=>1); 

Результаты базы данных я получаю с:

$result->fetch_array(MYSQLI_ASSOC) 

Спасибо.

+2

У вас есть вопросы, которые вы хотели бы задать нам? –

+0

Кавычки должны обозначать значение как строку. Без кавычек значение было бы интерпретировано как числовое (int, long, float и т. Д.) –

+0

Вы хотите, чтобы они были цифрами или строками? – Passerby

ответ

1

В интересах согласованности я должен беспокоиться об этой детали?

Это зависит от того, как вы собираетесь их использовать. Если все, что вам нужно, это отображение, это нормально; Но если вам нужно сделать сравнение/расчет (учитывая, что у вас есть значение date), было бы лучше преобразовать их в число.

Вы можете попробовать

$record[]=array_map("intval",$result->fetch_array(MYSQLI_ASSOC)); 

Чтобы каждый столбец как целое число, а также позже

$record[]=array("strat_id"=>intval($_POST['gridID'])+1, 
    "x_id"=>$_SESSION['xID'], 
    "outcome_id"=>intval($_POST['cellID'])+1, 
    "date"=>time(), 
    "status"=>intval($_POST['type']), 
    "rank"=>1); 

Так, чтобы иметь многомерный массив, который имеет каждый элемент как целое.

Смежные вопросы