将关联数组更改为索引数组/将Zend_Table_Row_Abstract更改为非关联数组

时间:2009-06-30 18:10:19

标签: php zend-framework associative-array associative

你好在Stackland。我想知道是否有一个函数或一种简单的方法将关联数组更改为索引数组。

详细说明,我正在使用Zend框架,我在我的网站中有一点我将一行SQL表作为关联数组取出。我通过JSON中的回显将它传递给了javascript。但是,我注意到我可以在Firebug中看到我的数据库列的名称。让外人知道你的表和列的名字是一个很大的安全禁忌,所以我想改变它

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

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

有没有好办法呢?

能够让Zend_Table_Abstract-> fetchAll()返回非关联数组也是有效的,但我不认为这是可能的。谢谢你的帮助!

4 个答案:

答案 0 :(得分:141)

纯php好吗?

$array = array_values($array);

Source

答案 1 :(得分:4)

定义功能

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)

答案 2 :(得分:0)

对于多层阵列,我使用以下方法:


function getIndexedArray($array) {
        $arrayTemp = array();
        for ($i=0; $i < count($array); $i++) { 
            $keys = array_keys($array[$i]);
            $innerArrayTemp = array();
            for ($j=0; $j < count($keys); $j++) { 

                $innerArrayTemp[$j] = $array[$i][$keys[$j]];                
            }
            array_push($arrayTemp, $innerArrayTemp);
        }
        return $arrayTemp;
    }

它变成这样:

(
    [0] => Array
        (
          [OEM] => SG
            [MODEL] => Watch Active2
            [TASK_ID] => 8
            [DEPT_ASSIGNED] => Purchashing  
        )
)

进入:

[0] => Array
        (
          [0] => SG
            [1] => Watch Active2
            [2] => 8
            [3] => Purchashing  
        )

答案 3 :(得分:-1)

如果您不想使用内置的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);