2009-06-30 101 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);