Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将关联数组更改为索引数组/将Zend_Table_Row_Abstract设置为非关联数组_Php_Zend Framework_Associative Array_Associative - Fatal编程技术网

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

Php 将关联数组更改为索引数组/将Zend_Table_Row_Abstract设置为非关联数组,php,zend-framework,associative-array,associative,Php,Zend Framework,Associative Array,Associative,嗨,在斯塔克兰。我想知道是否有一个函数或一种简单的方法可以将关联数组更改为索引数组 更详细地说,我使用的是Zend框架,我的站点中有一个点,我将SQL表的一行作为关联数组。我已经通过JSON中的回声将其传递给javascript。但是,我注意到我可以在Firebug中看到数据库列的名称。让外人知道您的表和列的名称是一个很大的安全问题。不,不,所以我想从 SQLarray[user_id] SQLarray[block_id] SQLarray[b_price] etc. 到 有什么好办法吗 让

嗨,在斯塔克兰。我想知道是否有一个函数或一种简单的方法可以将关联数组更改为索引数组

更详细地说,我使用的是Zend框架,我的站点中有一个点,我将SQL表的一行作为关联数组。我已经通过JSON中的回声将其传递给javascript。但是,我注意到我可以在Firebug中看到数据库列的名称。让外人知道您的表和列的名称是一个很大的安全问题。不,不,所以我想从

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

有什么好办法吗

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

纯php可以吗

$array = array_values($array);
定义函数

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)

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

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


为此:

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

你能描述一下你的代码是如何解决这个问题的吗?只要把关联数组作为参数传递,它就会转换成数组的默认索引。例如:我们在调用函数数组后使用数组('2014-04-30'=>43,'2014-04-29'=>41),函数数组将是数组(0=>43,1=>41)。此逻辑非常有用。如果初始数组是从odbc_fetch_数组生成的,我是否可以依靠数组_值始终遵守结果集的正确列顺序?看起来我可以。这是每个人都会使用的基本解决方案。但我猜问题的意思是,是否有比这更好的方法。
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  
        )