2009-06-30 105 views
49

您好在Stackland中。我想知道是否有一个函数或简单的方法将关联数组更改为索引数组。将关联数组更改为索引数组/获取Zend_Table_Row_Abstract作为非关联

为了详细说明,我使用了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()返回一个非关联数组,但我不认为这是可能的。谢谢你的帮助!

回答

123

是纯粹的PHP好吗?

$array = array_values($array); 

Source

+0

如果初始数组是从odbc_fetch_array生成的,我可以指望array_values始终遵守结果集的正确列顺序吗?我似乎可以。 – 2017-01-05 20:24:51

3

定义函数

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)

+1

您能否提供关于您的代码如何解决问题的说明或简短说明? – Illidanek 2014-07-09 10:28:36

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