Измените ассоциативный массив на индексированный массив / получите Zend_Table_Row_Abstract как неассоциативный

StackOverflow https://stackoverflow.com/questions/1065131

Вопрос

Привет там, в Стакленде.Мне было интересно, существует ли функция или простой способ преобразовать ассоциативный массив в индексированный.

Чтобы уточнить, я использую Zend Framework, и у меня есть точка на моем сайте, где я извлекаю строку таблицы SQL в виде ассоциативного массива.Я передал это в javascript через echoed в JSON.Однако я заметил, что могу видеть названия столбцов моей базы данных в Firebug.Знание посторонними названий ваших таблиц и столбцов является серьезной проблемой безопасности, поэтому я хотел бы изменить это с

SQLarray[user_id]
SQLarray[block_id]
SQLarray[b_price] etc.

Для

SQLarray[0]
SQLarray[1]
SQLarray[2] etc.

Есть ли хороший способ сделать это?

Также было бы неплохо, если бы функция Zend_Table_Abstract-> fetchAll() возвращала неассоциативный массив, но я не думаю, что это возможно.Спасибо за вашу помощь!

Это было полезно?

Решение

Чистый php в порядке?

$array = array_values($array);

Источник

Другие советы

определить функцию

function array_default_key($array) {
    $arrayTemp = array();
    $i = 0;
    foreach ($array as $key => $val) {
        $arrayTemp[$i] = $val;
        $i++;
    }
    return $arrayTemp;
}

Передайте ассоциативный массив в качестве параметра, и он преобразуется в индекс массива по умолчанию.Например:у нас есть Array('2014-04-30'=>43,'2014-04-29'=>41) после вызова функции массив будет иметь вид Array(0=>43,1=>41).

Вы могли бы использовать этот простой фрагмент кода, если вы не хотите использовать встроенную функцию PHP.

$input_array;           // This is your input array
$output_array = [];     // This is where your output will be stored.
foreach ($input_array as $k => $v){
    array_push($output_array, $v);
}
print_r($output_array);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top