2009-06-30 15 views
49

Stacklandにこんにちは。連想配列をインデックス配列に変更するための関数または簡単な方法があるかどうか疑問に思っていました。連想配列をインデックス配列に変更する/非結合としてZend_Table_Row_Abstractを取得

私はZendフレームワークを使用しています。サイト内で、連想配列としてSQLテーブルの行を取り出します。私はJSONでエコーされたjavascriptに渡しました。しかし、私はFirebugでデータベースの列の名前を見ることができます。部外者があなたのテーブルやカラムの名前を知っていたことは、これを行うには良い方法はあり大きなセキュリティが無いないので、私は

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

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

からそれを変更したいではありません?

また、Zend_Table_Abstract-> fetchAll()が非連想配列を返すようにすることもできますが、それは可能ではないと思います。ご協力いただきありがとうございます!

答えて

123

純粋なPHPですか?

$array = array_values($array); 

Source

+0

初期配列がodbc_fetch_arrayから生成された場合、結果セットの正しい列順序を常に考慮してarray_valuesをカウントできますか?私のように思える。 –

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

+0

は、単に連想配列をパラメータとして渡し、配列のデフォルトのインデックスに変換します。例えば、コール関数配列がArray(0 => 43,1 => 41)の後にArray( '2014-04-30' => 43、 '2014-04-29' => 41) –

-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); 
関連する問題