将命名键放在数组中的数字键之前


Put a named key before numeric keys in array

需要比较两个数组

工作示例

$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);

阵列 1 输出:

Array ( [a] => green [0] => red [1] => blue ) 

当我这样做时

$array1 = array();
while($fetch = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
    $array1[] = $fetch['color'];
}  

我得到这个输出:

Array ([0] => gren [1] => red [2] blue

如何将"a"添加到数组并使第一种颜色为零?

这添加了"a",但它得到了零数字

array_unshift($array1,"a");

喜欢

Array ( [0] => a [1] => green

我想要这个

Array ( [a] => green [0]

我不确定你为什么要这样做,但方法如下:

$array1 = array();
while ($fetch = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
    if (empty($array1)) {
        $array1['a'] = $fetch['color'];
    } else {
        $array1[] = $fetch['color'];
    }
}
$arr = array(0 => 'green', 1 => 'red', 2 => 'blue');
$res = array_merge(array('a' => current($arr)), array_slice($arr, 1));
您可以使用

array_mergearray_shift函数:

$arr = array(0 => 'green', 1 => 'red', 2 => 'blue');
$new = array_merge(array('a' => array_shift($arr)), $arr);

演示:http://codepad.org/osifrZKZ