2009-06-30 8 views
49

Salut à Stackland. Je me demandais s'il y avait une fonction ou un moyen facile de changer un tableau associatif dans un tableau indexé. Pour développer, j'utilise le framework Zend, et j'ai un point dans mon site où je sors une ligne d'une table SQL en tant que tableau associatif. Je l'ai passé à javascript via un écho en JSON. Cependant, j'ai remarqué que je peux voir les noms des colonnes de ma base de données dans Firebug. Avoir des étrangers connaissent une grande sécurité les noms de vos tables et colonnes non-non, donc je voudrais changer deModifier un tableau associatif dans un tableau indexé/obtenir un Zend_Table_Row_Abstract comme non-associatif

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

à

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

Y at-il une bonne façon de faire ?

Il serait également possible de faire en sorte que Zend_Table_Abstract-> fetchAll() retourne un tableau non-associatif, mais je ne pense pas que ce soit possible. Merci de votre aide!

Répondre

123

Le php pur est-il correct?

$array = array_values($array); 

Source

+0

Si le tableau initial a été généré à partir de odbc_fetch_array, puis-je compter sur array_values ​​pour toujours respecter l'ordre des colonnes correct du jeu de résultats? Il semble que je peux. –

3

définir la fonction

function array_default_key($array) { 
    $arrayTemp = array(); 
    $i = 0; 
    foreach ($array as $key => $val) { 
     $arrayTemp[$i] = $val; 
     $i++; 
    } 
    return $arrayTemp; 
} 

passer le tableau associatif en tant que paramètre et il sera converti en l'index par défaut du tableau. Par exemple: nous avons Array('2014-04-30'=>43,'2014-04-29'=>41) après l'appel à la fonction, le tableau sera Array(0=>43,1=>41).

+1

Pourriez-vous fournir une description ou une brève explication de la façon dont votre code résout le problème? – Illidanek

+0

simplement passer tableau associatif en tant que paramètre et il convertir en index par défaut de tableau. Par exemple: nous avons Array ('2014-04-30' => 43, '2014-04-29' => 41) après que le tableau de fonction d'appel sera Array (0 => 43,1 => 41) –

-1

Vous pouvez utiliser ce simple code, si vous ne voulez pas utiliser la fonction PHP intégrée.

$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); 
Questions connexes