it-swarm.com.ru

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

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

Чтобы уточнить, я использую Zend Framework, и у меня есть точка на моем сайте, где я вынимаю строку таблицы 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 () возвращал неассоциативный массив, но я не думаю, что это возможно. Спасибо за вашу помощь!

53
Ethan

Чистый PHP нормально?

$array = array_values($array);

Источник

141
Ian Elliott

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

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

4
user3567805