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


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

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

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

До

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

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

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

Author: jason, 2009-06-30

3 answers

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

$array = array_values($array);

Источник

 133
Author: Ian Elliott, 2015-04-21 08:28:32

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

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).

 3
Author: Illidanek, 2014-07-10 07:17: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);
 -1
Author: Hareesh Sivasubramanian, 2015-12-03 10:26:25